What makes TortoiseGit such a good Git client? Here's a short list of features.
- Shell integration
-
TortoiseGit integrates seamlessly into the Windows shell (i.e. the explorer). This means you can keep working with the tools you're already familiar with. And you do not have to change into a different application each time you need functions of the version control!
And you are not even forced to use the Windows Explorer. TortoiseGit's context menus work in many other file managers, and in the File/Open dialog which is common to most standard Windows applications. You should, however, bear in mind that TortoiseGit is intentionally developed as extension for the Windows Explorer. Thus it is possible that in other applications the integration is not as complete and e.g. the icon overlays may not be shown.
- Icon overlays
-
The status of every versioned file and folder is indicated by small overlay icons. That way you can see right away what the status of your working tree is.
The icon overlays are based on TortoiseOverlays (http://www.tortoisesvn.net)
- Easy access to Git commands
-
All Git commands are available from the explorer context menu. TortoiseGit adds its own submenu there.
Since TortoiseGit is a Git client, we would also like to show you some of the features of Git itself:
- Distributed version control
-
Like most other modern version control systems, Git gives each developer a local copy of the entire development history, and changes are copied from one such repository to another. These changes are imported as additional development branches, and can be merged in the same way as a locally developed branch. Repositories can be easily accessed via the efficient Git protocol (optionally wrapped in ssh for authentication and security) or simply using HTTP - you can publish your repository anywhere without any special webserver configuration required.
- Atomic commits
-
A commit either goes into the repository completely, or not at all.
- Strong support for non-linear development
-
Git supports rapid and convenient branching and merging, and includes powerful tools for visualizing and navigating a non-linear development history.
- Efficient handling of large projects
-
Git is very fast and scales well even when working with large projects and long histories. It is commonly an order of magnitude faster than most other version control systems, and several orders of magnitude faster on some operations. It also uses an extremely efficient packed format for long-term revision storage that currently tops any other open source version control system.
- Cryptographic authentication of history
-
The Git history is stored in such a way that the name of a particular revision (a "commit" in Git terms) depends upon the complete development history leading up to that commit. Once it is published, it is not possible to change the old versions without it being noticed. Also, tags can be cryptographically signed.
- Efficient branching and tagging
-
The cost of branching and tagging need not be proportional to the project size. Branch is just head of commits. Tag is friend name of commit hash.
- Toolkit design
-
Following the Unix tradition, Git is a collection of many small tools written in C, and a number of scripts that provide convenient wrappers. Git provides tools for both easy human usage and easy scripting to perform new clever operations.