TortoiseGit Manual

Chapter 2. TortoiseGit Daily Use Guide

Table of Contents

Getting Started
Icon Overlays
Context Menus
Drag and Drop
Common Shortcuts
Maximizing Windows
Create Repository
Clone Repository
Checking Out A Working Tree (Switch to commit)
Committing Your Changes To The Repository
The Commit Dialog
Change Lists
Excluding Items from the Commit List
Commit only parts of files
Commit Log Messages
Commit Progress
Getting Status Information
Icon Overlays
Explorer Properties
Viewing Diffs
Pull and Fetch change
Browse All Refs
Change Lists
Log Dialog
Invoking the Revision Log Dialog
Revision Log Actions
The revision graph
Commit messages and branch/tag indicators
Getting Additional Information
Filtering Log Messages
Statistical Information
Refreshing the View
Revision Graphs
Revision Graph Nodes
Using the Graph
Refreshing the View
Reference Log
The Repository Browser
Viewing Differences
File Differences
Line-end and Whitespace Options
Comparing Version
Diffing submodules using Submodule Diff Dialog
Diffing Images Using TortoiseGitIDiff
External Diff/Merge Tools
Adding New Files
Copying/Moving/Renaming Files and Folders
Ignoring Files And Directories
Pattern Matching in Ignore Lists
Deleting, Moving and Renaming
Deleting files and folders
Moving files and folders
Changing case in a filename
Dealing with filename case conflicts
Deleting Unversioned Files
Undo Changes
Stash Changes
Creating a Branch or Tag
Cherry picking
Resolving Conflicts
Special conflict cases
Creating and Applying Patches and Pull Requests
Creating a Patch Serial
Sending patches by mail
Applying a single Patch File
Applying a Patch Serial
Creating a pull request
Who Changed Which Line?
Blame for Files
Exporting a Git Working Tree
Integration with Bug Tracking Systems / Issue Trackers
Adding Issue Numbers to Log Messages
Getting Information from the Issue Tracker
TortoiseGit's Settings
General Settings
Icon Overlay Settings
Network Settings
External Program Settings
Saved Data Settings
Client Side Hook Scripts
TortoiseGitBlame Settings
TortoiseGitUDiff Settings
Advanced Settings
Exporting TortoiseGit Settings
Working with worktrees
Creating a worktree
git svn dcommit
Git LFS Locking
Setting up the repository
Locking a file
Unlocking a file
Show Locks Dialog
Final Step

This document describes day to day usage of the TortoiseGit client. It is not an introduction to version control systems, and not an introduction to Git. It is more like a place you may turn to when you know approximately what you want to do, but don't quite remember how to do it.

For hints where to find more information about doing version control with Git see the section called “Reading Guide”.

This document is also a work in progress, just as TortoiseGit and Git are. If you find any mistakes, please report them to the mailing list so we can update the documentation. Some of the screenshots in the Daily Use Guide (DUG) might not reflect the current state of the software. Please forgive us. We're working on TortoiseGit in our free time.

In order to get the most out of the Daily Use Guide:

  • You should have installed TortoiseGit already.

  • You should be familiar with version control systems.

  • You should know the basics of Git.

  • You should have set up a server and/or have access to a Git repository.

Getting Started

Icon Overlays

Figure 2.1. Explorer showing icon overlays

Explorer showing icon overlays

One of the most visible features of TortoiseGit is the icon overlays which appear on files in your working tree. These show you at a glance which of your files have been modified. Refer to the section called “Icon Overlays” to find out what the different overlays represent.

Context Menus

Figure 2.2. Context menu for a directory under version control

Context menu for a directory under version control

All TortoiseGit commands are invoked from the context menu of the windows explorer. Most are directly visible, when you right click on a file or folder. The commands that are available depend on whether the file or folder or its parent folder is under version control or not. You can also see the TortoiseGit menu as part of the Explorer file menu.


Some commands which are very rarely used are only available in the extended context menu. To bring up the extended context menu, hold down the Shift key when you right-click.

In some cases you may see several TortoiseGit entries. This is not a bug!

Figure 2.3. Explorer file menu for a shortcut in a versioned folder

Explorer file menu for a shortcut in a versioned folder

This example is for an unversioned shortcut within a versioned folder, and in the Explorer file menu there are two entries for TortoiseGit. One for the shortcut itself and the second for the object the shortcut is pointing to. To help you distinguish between them, the icons have an indicator in the lower right corner to show whether the menu entry is for a file, a folder, a shortcut or for multiple selected items.

Drag and Drop

Figure 2.4. Right drag menu for a directory under version control

Right drag menu for a directory under version control

Other commands are available as drag handlers, when you right drag files or folders to a new location inside working trees or when you right drag a non-versioned file or folder into a directory which is under version control.

Common Shortcuts

Some common operations have well-known Windows shortcuts, but do not appear on buttons or in menus. If you can't work out how to do something obvious, like refreshing a view, check here.


Help, of course.


Refresh the current view. This is perhaps the single most useful one-key command. For example ... In Explorer this will refresh the icon overlays on your working tree. In the commit dialog it will re-scan the working tree to see what may need to be committed. In the Revision Log dialog it will contact the repository again to check for more recent changes.


Select all. This can be used if you get an error message and want to copy and paste into an email. Use Ctrl-A to select the error message and then ...


... Copy the selected text.




SSH (URLs look like

TortoiseGitPlink is recommended as SSH client because it better integrates with Windows. By default TortoiseGitPlink does not store passwords, you can use the PuTTY authentication agent for caching the password (done automatically if a PuTTY key is configured for a remote). For advanced tips & tricks see Appendix F, Tips and tricks for SSH/PuTTY. Note, however, that TortoiseGitPlink does not respect ~/.ssh/config which is OpenSSH specific (see PuTTY tips & tricks or configure OpenSSH as SSH client, see next paragraph). If you also want to use TortoiseGitPlink on Git Bash, create an environment variable called GIT_SSH with the path to the PuTTY plink.exe or preferably to TortoiseGitPlink.exe. This can be done by re-executing the Git for Windows installer (there you can choose which SSH client to use), on the command line by executing set GIT_SSH=PATH_TO_PLINK.EXE" (C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe on default installations) or configure the environment variables permanently .

It is also possible to use OpenSSH (shipped with Git for Windows, Cygwin, and MSYS2). Just open TortoiseGit settings and open the Network page and enter ssh.exe as SSH client, see the section called “Network Settings” and this answer on StackOverflow . When OpenSSH is used, you can also make use of ~/.ssh/config (cf. this answer on StackOverflow ).

HTTP/HTTPS (URLs start with https:// or http://)

By default Git does not save/cache credentials. However, you can configure a credential helper (recommended, also see gitcredentials(7) man-page) or manually use %HOME%/_netrc .

If you have set up a credential store and you want to clear some stored credentials see this answer on StackOverflow .

Maximizing Windows

Many of TortoiseGit's dialogs have a lot of information to display, but it is often useful to maximize only the height, or only the width, rather than maximizing to fill the screen. As a convenience, there are shortcuts for this on the Maximize button. Use the middle mouse button to maximize vertically, and right mouse to maximize horizontally.