
The purpose of Git is to manage a project, or a set of files, as they change over time. Git stores this information in a data structure called a repository. TortoiseGit is an open source Git control client, that was built to provide the tools to better manage the source code. It isn't integrated into a specific IDE, so the only way to interact with the program is by using the context menu of the Windows Explorer.
Like I mentioned earlier, the program commands are available directly from Windows Explorer and are personalized for every specific action, so it will only display commands that are available for the selected file or folder.
It has a powerful commit dialog that automatically offers suggestions for paths or keywords, special text formatting characters, and a built-in spell checker. Moreover, this Git client comes with an integrated web-based bug tracking system and other helpful tools, such as GitMerge - for resolving conflicts, or showing changes made to files - or GitBlame, which shows blames of files.
In conclusion, TortoiseGit is a decent Git client, is available in various languages and it impresses through its stability. The only downsides I encountered are an issue with the overriding git status file icons by the cloud provider and the poorly integrated selection of files in a subdirectory.
v2.4 [Jan 31, 2017]
== Bug Fixes ==
* Fixed issue #2909: Commit window unclosable after clicking "No" and "do not ask again"
* Fixed issue #2911: Doing Add on repository root fails with libgit2 returned "invalid path"
* Fixed issue #2791: Start Bisect UI incomplete
* Update PuTTY to 0.68 (security fix, cf. http://www.chiark.greenend.org.uk/~sgtatham/putty/changes.html)
* Fixed issue #2935: Icon overlay not shown for files on network UNC paths
* Fix possible crash in TortoiseGitMerge when applying patch
= Release 2.4.0 =
Released: 2017-01-31
== Major change ==
* TGitCache and icon overlays are case sensitive now
== Features ==
* Fixed issue #2505: Add support for bisect skip
* Fixed issue #2757: Allow to use quotes in command line arguments, like /logmsg:"Some text ""Quoted text"" another text"
* Fixed issue #2849: Optimize include and exclude paths for context menu and overlay icons
We synced the include/exclude paths code with TortoiseSVN. Now you can exclude paths in an included path.
Some people might need to update their include/exclude paths, see our manual for more information.
* Fixed issue #2136: LogDlg: Indicate that the View and Walk Behavior buttons contain a menu
* Fixed issue #1635: Add option to set TortoiseGitMerge foreground text colors
* Fixed issue #2586: Integration of further hooks: pre-rebase and post-commit
* Fixed issue #2444: Drag and drop on commit dialog to include files in the list for committing
* Browse References Dialog: Allow to filter for merged and unmerged branches
* Fixed issue #2273: Remember the width of the "view patch" window
* Fixed issue #2710: Allow start-commit hook to prevent the Commit dialog from showing
* Fixed issue #2865: Clickable URLs in TortoiseGit output window
* Fixed issue #2154: Copy to clipboard function in show log window doesn't include annotated tag or notes messages
* Fixed issue #1668: Allow submodules to be removed ("Delete" is now available for submodules)
* Update libgit2 to 0.25.1
* The shipped libgit2 uses the CrLf filter logic from Git >= 2.9
* Fixed issue #2863: Increase text box size limit for command progress dialog and make it configurable
* Fixed issue #2274 and issue #2750: Add advanced option for controlling which date/time is used for squashed commits (setting: SquashDate)
1: Use date of last commit, 2: Use current date, 0: Use time of first commit into which others are squashed (default)
* Fixed issue #2633: Check for Modifications dialog doesn't refresh after commit
* Fixed issue #1656: Add "dcommit" to change sets in "log messages"
* Fixed issue #2741: TortoiseGitBlame: Allow to limit blame on first parents
* Fixed issue #2826: Highlight commit to which the parent repo points to in the log for submodules (named: super-project-pointer)
* Added a first start wizard which can be re-run from TortoiseGit settings
* Fixed issue #2593: Hitting escape closes the commit window without any attention message
* Fixed issue #2702: File selection dialog should not open for Add if only files are selected
* Fixed issue #1749: Create Patch Serial: Remember "Since" branch
* Fixed issue #2264: Insert new items into interactive rebase and cherry-pick process
* Fixed issue #2456: Allow to compare change sets in log
* Updated libgit to 2.11
* Updated pcre to 8.40
* Several high DPI optimizations
* Fixed issue #2889: TortoiseGitMerge: Show inline diffs in one-pane-view mode as well, at least for single line changes
* Fixed issue #2894: Enable/disable check boxes for hook scripts
* Enable/disable check boxes for bugtraq plugins
* Fixed issue #2283: Improve symbols for "Symbolize ref names"
* Fixed issue #2746: SubWCRev equivalent required: GitWCRev added
* Fixed issue #2082: RebaseDlg: Reorder commits via drag'n'drop
* Fixed issue #2210: Do not allow merging from the current branch to the current branch
== Bug Fixes ==
* Fixed issue #2837: Fixed layout issues on settings dialog
* Fixed issue #2839: The dialog "check for updates" has a resize issue
* Fixed issue #2845: Sticky button when resizing the "Rename dialog"
* Fixed issue #2846: Spell checker won't add unknown words to dictionary. The dictionaries are now saved as UTF-8.
If you have non ascii chars in your dictionary and want to keep those, you need to manually convert these to UTF-8.
The dictionaries can be found in %APPDATA%\TortoiseGit\*.dic.
* Fixed issue #2850: The installer does not completely support high-contrast-mode
* Fixed issue #2853: Commit message autocompletion failed sometimes for words with different casing
* Fixed issue #2851: Switching high-contrast-mode on or off, does not cause change of used UI colors
* Fixed issue #2829: Remembering the last selected line might not work when a conflict was manually resolved
* Fixed issue #2868: Show changes as unified diff might fail (using Cygwin git)
* /command:showcompare /unified did not honor path filters correctly