TortoiseGit on cloud

1-click AWS Deployment    1-click Azure Deployment

Overview

TortoiseGit is a free open-source client for the Git version control system. That is, TortoiseGit manages files over time. Files are stored in a local repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. 

Configure TortoiseGIT client to work with SSH keys on Window 

Instructions for creating SSH key pair in windows. 

On Windows, it is easy to use the free PuTTY SSH client and its related tools (see links below).PuTTYgenallows you to generate an SSH key pair. You can save the private key on your machine and provide the server you want to access with a copy of the public key.

In order to generate your key pair, do the following:

Download and installPUTTYgenhttp://tartarus.org/~simon/putty-snapshots/x86/puttygen.exe from this link. Having installed PuTTYgen, start the application and a window should appear like something in the below picture. 

  Click on the Generate button and the window should show the following screen in the picture below. Wiggle the cursor under the green bar to generate some randomness used to encrypt your private key. Once the green bar has filled upPuTTYgen will have created your key pair. 

 The following screen in the below picture will appear which allows you to save your key pair. Firstly, make sure that you protect your private key with a suitable pass phrase by typing it into the Key passphrase and Confirm passphrase inputs. You should then click Save private key button and save the key with a .ppkextension. Make a note of where you have saved the private key file.

 You need to provide server with a copy of your public key file. Select and copy the text in the “Public key for pasting into the ‘Keys Settings’ section on your account in app.cloudforge.com.

 Using SSH keys with TortoiseGit client. 

You can specify the Key Location for Tortoisegit the following way: 

Open an Explorer Window.
Open the Contextmenu and Navigate TortoiseGit > Settings
In the now opened window Navigate to Git > Remote
Set the Path to your Putty Key in the corresponding Input Box. (See the following picture for TortoiseGit setting). 

Install TortoiseGIT and GIT in Windows to use with CloudForge

Install TortoiseGIT

Run the TortoiseGit-*.msi file you downloaded previously >  Select Defaults > make sure to select PLink as the SSH client

 

Install msysgit

Run the Git-1.7*.exe file you downloaded previously

 

Defaults are good too > But make sure to select “Run Git from the Windows Command Prompt”

 

Setup TortoiseGIT…

Start > TortoiseGIT > Settings

 

Double check the path for GIT is setup properly: General > Git.exe Path: C:\Program Files (x86)\Git\bin (or C:\Program Files\Git\bin in 32bit machines – or wherever else you installed msysgit)

 

And on  Network > SSH: SSH Client = C:\Program Files\TortoiseGit\bin\TortoisePlink.exe

 

Set your Name and Email (use your email you used in CloudForge)

Congrats! You have installed and setup GIT and TortoiseGIT in Windows.

 

Now create SSH keys… clone, commit, and push to your CloudForge GIT repo.

TortoiseGit is a free open-source client for the Git version control system. That is, TortoiseGit manages files over time. Files are stored in a local repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your files and examine the history of how and when your data changed, and who changed it. This is why many people think of Git and version control systems in general as a sort of “time machine”.

Some version control systems are also software configuration management (SCM) systems. These systems are specifically tailored to manage trees of source code, and have many features that are specific to software development – such as natively understanding programming languages, or supplying tools for building software. Git, however, is not one of these systems; it is a general system that can be used to manage any collection of files, including source code.

TortoiseGit’s Settings

To find out what the different settings are for, just leave your mouse pointer a second on the editbox/checkbox… and a helpful tooltip will popup.

General Settings

 

 

Figure 2.70. The Settings Dialog, General Page

The Settings Dialog, General Page


This dialog allows you to specify your preferred language, and the Git-specific settings.

Language
Selects your user interface language. What else did you expect? Only languages of installed LanguagePacks are listed. You can download language packs on the TortoiseGit download page or help translating.
Automatically check for newer versions every week
If checked, TortoiseGit will contact its download site once a week to see if there is a newer version of the program available. Use Check now if you want an answer right away. The new version will not be downloaded; you simply receive an information dialog telling you that the new version is available.
Create Library
On Windows 7 you can create a Library in which to group working copies which are scattered in various places on your system.
Git.exe Path
TortoiseGit needs to know which git.exe to use for it’s operations. Enter the full path to git.exe here.

Extra PATH

If your git installation needs an extra entry in the PATH environment variable, you can enter it here and it will get added to the PATH environment variable automatically when TortoiseGit starts.

This is especially needed if you installed the developer version of msysGit (“Full installer (self-contained) if you want to hack on Git” with the filename msysGit-fullinstall-*.exe), in this case it is necessary that the [MSYSGIT-INSTALL-PATH]\mingw\bin-folder is on the path (i.e. entered in the Extra PATH textbox) in order to execute git.exe.

Often you can see if you need this when you start git.exe in [MSYSGIT-INSTALL-PATH]\mingw\bin-folder and you get a messagebox saying that a dll is missing.

Cygwin Git
As noted above: There is no official support for Cygwin git in TortoiseGit (do not enable this for the “Git for Windows package!). The TortoiseGit developers only use Git for Windows. Bug reports, however, are welcome. If you really want to use it here are the steps you have to perform:

1) Select the [CYGWIN-INSTALL-PATH]\bin-folder as git.exe folder.

2) Configure the HOME environment variable in Windows, so that Cygwin and TortoiseGit are using the same home directory and global git-config. Use the normal Windows notation here (e.g., “C:\Users\USERNAME”). By default, TortoiseGit uses the Windows home directory which is normally located under c:\Users and Cygwin uses its own home directories which are located under [CYGWIN-INSTALL-PATH]\home.

3) Configure AutoCrLf, this is necessary as TortoiseGit and Cygwin Git have different defaults. The default in Cygwin Git is true.

4) Go to TortoiseGit the section called “Advanced Settings” and set CygwinHack to true in order to activate cygwin workarounds.

5) Reboot.

Msys2 Git
As noted above: There is no official support for Msys2 git in TortoiseGit (do not enable this for the “Git for Windows package!). The TortoiseGit developers only use Git for Windows. Bugreports, however, are welcome. If you really want to use it here are the steps you have to perform:

1) Select the [MSYS2-INSTALL-PATH]\usr\bin-folder as git.exe folder.

2) Configure the HOME environment variable in Windows, so that Msys2 and TortoiseGit are using the same home directory and global git-config. Use the normal Windows notation here (e.g., “C:\Users\USERNAME”). By default, TortoiseGit uses the Windows home directory which is normally located under c:\Users and Msys2 uses its own home directories which are located under [MSYS2-INSTALL-PATH]\home.

3) Configure AutoCrLf, this is necessary as TortoiseGit and Msys2 Git might have different defaults.

4) Go to TortoiseGit the section called “Advanced Settings” and set Msys2Hack to true in order to activate Msys2 workarounds.

5) Reboot.

Context Menu Settings

 

Figure 2.71. The Settings Dialog, Context Menu Page

The Settings Dialog, Context Menu Page


This page allows you to specify which of the TortoiseGit context menu entries will show up in the main context menu (on the first level), and which entries will appear in the TortoiseGit submenu. By default most items are unchecked and appear in the submenu. If you want to hide specific entries.

Most of the time, you won’t need the TortoiseGit context menu, apart for folders that are under version control by Git. For non- versioned folders, you only really need the context menu when you want to do a checkout. If you check the option Hide menus for unversioned paths, TortoiseGit will not add its entries to the context menu for unversioned folders. But the entries are added for all items and paths in a versioned folder. And you can get the entries back for unversioned folders by holding the Shift key down while showing the context menu.

If there are some paths on your computer where you just don’t want TortoiseGit’s context menu to appear at all, you can list them in the box at the bottom.

If you right click and drag folder/file in Windows Explorer, a context menu will be shown when you drop. It provides some TortoiseGit actions. You can uncheck Enable drag context menu to prevent from carelessly clicking the TortoiseGit actions.

Context Menu 2 Settings

 

Figure 2.72. The Settings Dialog, Context Menu 2

The Settings Dialog, Context Menu 2


This page allows you to specify which of the TortoiseGit context menu entries will be hidden by default. Selected item will only be visible when you hold the Shift key on right click (this is the so-called extended context menu, please don’t mix this with the TortoiseGit submenu, which is also configurable . This configuration helps you to reduce the number of context menu entries according to your needs.

TortoiseGit Dialog Settings

 

Figure 2.73. The Settings Dialog, Dialogs Page

The Settings Dialog, Dialogs Page


This dialog allows you to configure some of TortoiseGit’s dialogs the way you like them.

Font for log messages
Selects the font face and size used to display the log message itself in the middle pane of the Revision Log dialog, and when composing log messages in the Commit dialog.
Short date / time format in log messages
If the standard long messages use up too much space on your screen use the short format.
Show asterisk log prefix
An asterisk is inserted as the prefix of log message in Log dialog.
apply –topo-order
Normally log entries/commits are ordered in descending order of the commit date. ‘–topo-order’ makes the commits appear in topological order (i.e. descendant commits are shown before their parents). Not using this option, might break the graph in the log dialog. However, this option is slower, because all log entries have to be processed before displaying them.
Can double-click in log list to compare with previous revision
If you frequently find yourself comparing revisions in the top pane of the log dialog, you can use this option to allow that action on double-click. It is not enabled by default because fetching the diff is often a long process, and many people prefer to avoid the wait after an accidental double-click, which is why this option is not enabled by default.
Abbreviate renamings
Normally renamed files are listed as “long/path/for/file.txt (from long/path/to/file.txt)”. If you check this option renamed files will be listed in a shorter format (“long/path/{to => for}/file.txt”), however, this abbreviated format might be harder to understand.
Symbolize ref names
Show symbols on ref labels to substitute part of the ref names in order to make them smaller. If this option is enabled, the following description and example will apply. If there is only a single remote, an up-arrow symbol (↑) will substitute the remote name part of each remote branch. If the remote branch is the upstream of a local branch, an equivalent symbol (≡) will substitute the branch name part of the remote branch.

 

Figure 2.74. Example of Symbolize ref names

Example of Symbolize ref names
Enable log cache
Load/saves log cache in .git folder (tortoisegit.data, tortoisegit.index) to boost performance of subsequent use of log list. If this option is disabled, the cache files are not read or written. Default is enabled.
Enable Gravatar
Shows the Gravatar image of the author of the commit in Log Dialog. The URL is customizable so you may specify more options supported by the server, or use your own avatar server. The default URL is http://www.gravatar.com/avatar/%HASH%?d=identicon Currently, the supported parameter is %HASH%, which is the MD5 email hash. To specify a default image, add d= parameter, e.g. http://www.gravatar.com/avatar/%HASH%?d=identicon
Draw tag/branch labels on right side
Shows tag/branch labels after the commit message.
Display branch revision number
Displays for every selected commit a so called “branch revision number” in the commit message field of the Log Dialog. The branch revision number is calculated by calling git rev-list --count --first-parent [SHA1] and represents the number of commits between the beginning of time and the selected commit. This number is NOT guaranteed to be unique, especially if you alter the history (e.g., using rebase) or use several branches at the same time. It can be seen “kinda unique” per branch in case you don’t alter its history (e.g. by rebasing, resetting) and only commit or merge other branches on it. This number is only displayed for first-parent commits and not for commits on non-fast-forward merges (here duplicate numbers could occur). See https://gcc.gnu.org/ml/gcc/2015-08/msg00148.html and https://gitlab.com/tortoisegit/tortoisegit/merge_requests/1 for more details.
Show describe in log
Shows describe above commit message in in Log dialog. For example, v0.21.0-589-gdeadc43 refers to the commit deadc43 that is 589 commits ahead the tag v0.21.0. Note: Describe may take longer to run if the commit is far ahead away from a tag.
Describe strategy
Determine reference lookup strategy: Available options: Annotated tags, All tags, All refs. Default strategy is annotated tags only. If your repository uses lightweight tags to mark releases, choose All tags.
Describe Abbreviated size
Number of chars of the abbreviated commit id to show in describe. Default is 7.
Describe Always show long format
Whether to use the long format even when a shorter name could be used. For example, when the commit g28f087c has tag v0.21.0, it still shows long format v0.21.0-0-g28f087c instead of just v0.21.0.

TortoiseGit Dialog Settings 2

 

Figure 2.75. The Settings Dialog, Dialogs Page 2

The Settings Dialog, Dialogs Page 2


This dialog allows you to configure some more of TortoiseGit’s dialogs the way you like them.

Git.exe Progress Dialog
TortoiseGit can automatically close all progress dialogs when the action is finished without error. This setting allows you to select the conditions for closing the dialogs. The default (recommended) setting is Close manually which allows you to review all messages and check what has happened. However, you may decide that you want to ignore some types of message and have the dialog close automatically if there are no critical changes.

Auto-close if no further options are available will close the dialog if git.exe exited cleanly (i.e. no error occurred) and no further options are presented in the progress dialog.

Auto-close if no errors always closes the dialog if git.exe exited with 0 error code.

Use recycle bin when reverting
When you revert local modifications, your changes are discarded. TortoiseGit gives you an extra safety net by sending the modified file to the recycle bin before bringing back the pristine copy. If you prefer to skip the recycle bin, uncheck this option.
Confirm to kill running git process
When enabled, if you close Progress Dialog or Sync Dialog with a running git process, you will be asked for confirmation before killing it. This avoids closing the dialog by accident that kills running git process.
Randomize Sync Dialog startup position
When enabled, the startup position of Sync Dialog will be randomized. If you open many Sync Dialogs and press pull button at the same time, you may easily press the pull button in any previous Sync Dialog if it finishes and becomes foreground.
Hide unchanged refs in Ref Compare List
When enabled, unchanged refs will not be shown in Ref Compare List, so you can focus on changed refs. Currently, this list is in Sync Dialog Ref List tab.
Show git.exe execution timings and timestamp
When enabled, git.exe execution timings and timestamp will be appended at the end of progress message.
Sort tag list in reversed order
When enabled, tag list is sorted in reversed order. It is because newer versions are more useful. e.g. Export Dialog allows to select the latest tag when this option is enabled.
Use auto-completion of file paths and keywords
The commit dialog includes a facility to parse the list of filenames being committed. When you type the first 3 letters of an item in the list, the auto-completion box pops up, and you can press Enter to complete the filename. Check the box to enable this feature.
Timeout in seconds to stop the auto-completion parsing
The auto-completion parser can be quite slow if there are a lot of large files to check. This timeout stops the commit dialog being held up for too long. If you are missing important auto-completion information, you can extend the timeout.
Max. items to keep in the log message history
When you type in a log message in the commit dialog, TortoiseGit stores it for possible re-use later. By default it will keep the last 25 log messages for each repository, but you can customize that number here. If you have many different repositories, you may wish to reduce this to avoid filling your registry.

Note that this setting applies only to messages that you type in on this computer. It has nothing to do with the log cache.

Select items automatically
The normal behaviour in the commit dialog is for all modified (versioned) items to be selected for commit automatically. If you prefer to start with nothing selected and pick the items for commit manually, uncheck this box.

TortoiseGit Dialog Settings 3

 

Figure 2.76. The Settings Dialog, Dialogs 3 Page

The Settings Dialog, Dialogs 3 Page


This dialog allows you to configure some of TortoiseGit’s dialogs the way you like them. This third page mainly affects the Commit dialog and the settings which are stored in git config files.

 

Language
TortoiseGit by default uses the spell checker modules which are also used by OpenOffice, LibreOffice and Mozilla. Optionally, the Windows 8+ spell checker can also be used (needs to be enabled manually at the moment). If you have those installed or use the Windows spell checker this property will determine which spell checker to use, i.e. in which language the log messages for your project should be written. The tgit.projectlanguage config key sets the language module the spell checking engine should use when you enter a log message.

Enter this value in decimal. For example English (US) can be entered as 1033.

Use -1 to disable the spell checker.

Limit
tgit.logminsize sets the minimum length of a log message for a commit. If you enter a shorter message than specified here, the commit button is disabled. This feature is very useful for reminding you to supply a proper descriptive message for every commit. If this property is not set, or the value is zero, empty log messages are allowed.
Border
tgit.logwidthmarker is used with projects which require log messages to be formatted with some maximum width (typically 72 characters) before a line break. Setting this property to a non-zero will place a marker to indicate the maximum width and performs line wrapping. Note: this feature will only work correctly if you have a fixed-width font selected for log messages.
Warn on Signed-Off-By on commit
tgit.warnnosignedoffby is used with projects which require Signed-off-by line in commit messages.
Overlay Icon
tgit.icon is used with projects which wish to show the logo on the taskbar for easier identification when multiple TortoiseGit application instances of different projects are running at the same time.

If icon is not 16×16 px in size, it will be automatically scaled. Supported formats are ico, png, jpg, gif, bmp. If no icon is included by that project, you may find one on you own, put it in .git folder and set the relative path in local config. e.g. .git/logo.ico If you want to disable it, you may set tgit.icon as an empty string in local config. It will fallback to a color block when disabled or load failed. Note that the advanced option GroupTaskbarIconsPerRepo should be 3 or 4 in order to use this function.

TortoiseGit Colour Settings

 

Figure 2.77. The Settings Dialog, Colours Page

The Settings Dialog, Colours Page


This dialog allows you to configure the text colours used in TortoiseGit’s dialogs the way you like them.

Possible or real conflict / obstructed
A conflict has occurred during update, or may occur during merge. Update is obstructed by an existing unversioned file/folder of the same name as a versioned one.

This colour is also used for error messages in the progress dialogs.

Added files
Items added to the repository.
Missing / deleted / replaced
Items deleted from the repository, missing from the working copy, or deleted from the working tree and replaced with another file of the same name.
Merged
Changes from the repository successfully merged into the working tree without creating any conflicts.
Modified / copied
Add with history, or paths copied in the repository. Also used in the log dialog for entries which include copied items.
Note node
A reference which points to git notes, under refs/notes namespace.
Use local branch color for current branch
In revision graph, use local branch color for current branch. You may not want to emphasize current branch of a local repository in revision graph.

TortoiseGit Colour Settings 2

 

Figure 2.78. The Settings Dialog, Colours Page

The Settings Dialog, Colours Page


This dialog allows you to configure the text colours used in TortoiseGit’s dialogs the way you like them.

TortoiseGit Colour Settings 3

 

Figure 2.79. The Settings Dialog, Colours Page

The Settings Dialog, Colours Page


This dialog allows you to configure the line colours, line width and node size in the graph column used in TortoiseGit’s log dialog the way you like them.

Icon Overlay Settings

 

Figure 2.80. The Settings Dialog, Icon Overlays Page

The Settings Dialog, Icon Overlays Page


This page allows you to choose the items for which TortoiseGit will display icon overlays.

By default, overlay icons and context menus will appear in all open/save dialogs as well as in Windows Explorer. If you want them to appear only in Windows Explorer, check the Show overlays and context menu only in explorer box.

Ignored items and Unversioned items are not usually given an overlay. If you want to show an overlay in these cases, just check the boxes.

You can also choose to mark folders as modified if they contain unversioned items. This could be useful for reminding you that you have created new files which are not yet versioned. This option is only available when you use the default status cache option (see below).

Since it takes quite a while to fetch the status of a working tree, TortoiseGit uses a cache to store the status so the explorer doesn’t get hogged too much when showing the overlays. You can choose which type of cache TortoiseGit should use according to your system and working tree size here:

Default
Caches all status information in a separate process (TGitCache.exe). That process watches all drives for changes and fetches the status again if files inside a working tree get modified. The process runs with the least possible priority so other programs don’t get hogged because of it. That also means that the status information is not real time but it can take a few seconds for the overlays to change.

Advantage: the overlays show the status recursively, i.e. if a file deep inside a working tree is modified, all folders up to the working tree root will also show the modified overlay. And since the process can send notifications to the shell, the overlays on the left tree view usually change too.

Disadvantage: the process runs constantly, even if you’re not working on your projects. It also uses around 10-50 MB of RAM depending on number and size of your working trees. From version 1.7.0 to 1.7.12 TGitCache did not check the contents of the files, it just checked the last modification time against the time stored in the git index file. Starting from 1.7.13 TGitCache now also checks the contents of the files by default. If you want to restore the old behavior, you can disable checking the contents via the Settings dialog -> Advanced and set TGitCacheCheckContentMaxSize to “0”.

Shell Extended
Caching is done directly inside the shell extension dll. Each time you navigate to another folder, the status information is fetched again (recursively).

Advantage: can show the status in real time.

Disadvantage: only one folder is cached and for big working trees, it can take much more time to show a folder in explorer than with the default cache or with shell mode. The Shell variant only shows differences of the filesystem to the git index (does not include revision specific information, e.g. if you remove a file from the index the file will show up as unversioned, but with TGitCache the file will show up as deleted until you commit this change).

Shell
Caching is done directly inside the shell extension dll, but only for the currently visible folder. Each time you navigate to another folder, the status information is fetched again.

Advantage: needs only very little memory (around 1 MB of RAM) and can show the status in real time.

Disadvantage: Since only one folder is cached, the overlays don’t show the status recursively. For big working trees, it can take more time to show a folder in explorer than with the default cache. The Shell variant only shows differences of the filesystem to the git index (does not include revision specific information, e.g. if you remove a file from the index the file will show up as unversioned, but with TGitCache the file will show up as deleted until you commit this change).

None
With this setting, the TortoiseGit does not fetch the status at all in Explorer. Because of that, files don’t get an overlay and folders only get a ‘normal’ overlay if they’re versioned. No other overlays are shown, and no extra columns are available either.

Advantage: uses absolutely no additional memory and does not slow down the Explorer at all while browsing.

Disadvantage: Status information of files and folders is not shown in Explorer. To see if your working trees are modified, you have to use the “Check for modifications” dialog.

By default, overlay icons and context menus will appear in all open/save dialogs as well as in Windows Explorer. If you want them to appear only in Windows Explorer, check the Show overlays and context menu only in explorer box.

You can force the status cache to None for elevated processes by checking the Disable status cache for elevated processes box. This is useful if you want to prevent another TGitCache.exe process getting created with elevated privileges.

You can also choose to mark folders as modified if they contain unversioned items. This could be useful for reminding you that you have created new files which are not yet versioned. This option is only available when you use the default status cache option (see below).

The next group allows you to select which classes of storage should show overlays. By default, only hard drives are selected. You can even disable all icon overlays, but where’s the fun in that?

Network drives can be very slow, so by default icons are not shown for working trees located on network shares.

USB Flash drives appear to be a special case in that the drive type is identified by the device itself. Some appear as fixed drives, and some as removable drives.

The Exclude Paths are used to tell TortoiseGit those paths for which it should not show icon overlays and status columns. This is useful if you have some very big working trees containing only libraries which you won’t change at all and therefore don’t need the overlays, or if you only want TortoiseGit to look in specific folders.

Any path you specify here is assumed to apply recursively, so none of the child folders will show overlays either. If you want to exclude only the named folder, append ? after the path.

The same applies to the Include Paths. Except that for those paths the overlays are shown even if the overlays are disabled for that specific drive type, or by an exclude path specified above.

Users sometimes ask how these three settings interact. For any given path check the include and exclude lists, seeking upwards through the directory structure until a match is found. When the first match is found, obey that include or exclude rule. If there is a conflict, a single directory spec takes precedence over a recursive spec, then inclusion takes precedence over exclusion.

An example will help here:

Exclude:
C:
C:\develop\?
C:\develop\tgit\obj
C:\develop\tgit\bin

Include:
C:\develop

These settings disable icon overlays for the C: drive, except for c:\develop. All projects below that directory will show overlays, except the c:\develop folder itself, which is specifically ignored. The high-churn binary folders are also excluded.

TGitCache.exe also uses these paths to restrict its scanning. If you want it to look only in particular folders, disable all drive types and include only the folders you specifically want to be scanned.

Exclude SUBST Drives

It is often convenient to use a SUBST drive to access your working trees, e.g. using the command

subst T: C:\TortoiseGit\doc

However this can cause the overlays not to update, as TGitCache will only receive one notification when a file changes, and that is normally for the original path. This means that your overlays on the subst path may never be updated.

An easy way to work around this is to exclude the original path from showing overlays, so that the overlays show up on the subst path instead.

Sometimes you will exclude areas that contain working trees, which saves TGitCache from scanning and monitoring for changes, but you still want a visual indication that a folder contains a working tree. The Show excluded folders as ‘normal’ checkbox allows you to do this. With this option, working tree folders in any excluded area (drive type not checked, or specifically excluded) will show up as normal and up-to-date, with a green check mark. This reminds you that you are looking at a working tree, even though the folder overlays may not be correct. Files do not get an overlay at all. Note that the context menus still work, even though the overlays are not shown.

As a special exception to this, drives A: and B: are never considered for the Show excluded folders as ‘normal’ option. This is because Windows is forced to look on the drive, which can result in a delay of several seconds when starting Explorer, even if your PC does have a floppy drive.

Icon Set Selection

 

Figure 2.81. The Settings Dialog, Icon Set Page

The Settings Dialog, Icon Set Page


You can change the overlay icon set to the one you like best. Especially you can disable overlays which you do not need like assume-valid and skip-worktree, however other Tortoise* tools use these two for different purposes. Note that if you change overlay set, you may have to restart your computer for the changes to take effect.

Enabled Overlay Handlers

 

Figure 2.82. The Settings Dialog, Icon Handlers Page

The Settings Dialog, Icon Handlers Page


Because the number of overlays available is severely restricted, you can choose to disable some handlers to ensure that the ones you want will be loaded. Because TortoiseGit uses the common TortoiseOverlays component which is shared with other Tortoise clients (e.g. TortoiseSVN, TortoiseCVS, TortoiseHg) this setting will affect those clients too.

Windows explorer can just handle a fixed number different overlay providers (15) and TortoiseGit is using 6 of these (these 6 are handled by TortoiseOverlays and, thus, shared with TortoiseSVN and TortoiseCVS). If the TortoiseGit icons are not correctly displayed this is likely caused by other programs which provide overlays (like Dropbox, Owncloud, BoxSync and various others) and register with a higher priority. Use the Start registry editor button for opening the registry editor at the key where the overlay handlers are registered. Just delete or rename the ones you don’t need OR prepend the Tortoise ones with a double quote or space characters so that those come first in the list.

Network Settings

 

 

Figure 2.83. The Settings Dialog, Network Page

The Settings Dialog, Network Page


Here you can configure your proxy server, if you need one to get through your company’s firewall.

The proxy server settings here do only affect Git for Windows (i.e., http and https protocols). If you are using OpenSSH/PuTTY/Tortoise(Git)Plink you have to set up the proxy server settings there separately. In order to do this, you need the main PuTTY tool, which is not shipped with TortoiseGit. Preferably you store the proxy settings to the “Default Settings” configuration there, so that it is applied by default.

If you need to set up per-repository proxy settings, you will need to use the Git config file to configure this.

You can also specify which program TortoiseGit should use to establish a secure connection to a git repository which is access using ssh. We recommend that you use TortoiseGitPlink.exe. This is a version of the popular Plink program, and is included with TortoiseGit, but it is compiled as a Windowless app, so you don’t get a DOS box popping up every time you authenticate.

You must specify the full path to the executable. For TortoiseGitPlink.exe this is the standard TortoiseGit bin directory. Use the Browse button to help locate it, e.g.:

"C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe"

Tip

If you want to use OpenSSH shipped by Git for Windows/msysGit just enter ssh.exe.

One side-effect of not having a window is that there is nowhere for any error messages to go, so if authentication fails you will simply get a message saying something like “Unable to write to standard output”. For this reason we recommend that you first set up using standard Plink. When everything is working, you can use TortoiseGitPlink with exactly the same parameters.

TortoiseGitPlink does not have any documentation of its own because it is just a minor variant of Plink. Find out about command line parameters from the PuTTY website

To avoid being prompted for a password repeatedly, you might also consider using a password caching tool such as Pageant. This is also available for download from the PuTTY website or included in the TortoiseGit package.

Finally, setting up SSH on clients is a non-trivial process which is beyond the scope of this help file. However, you can find a guide in the TortoiseGit FAQ listed under Appendix F, Tips and tricks for SSH/PuTTY.

Email settings

 

Figure 2.84. The Settings Dialog, email settings

The Settings Dialog, email settings


This page allows you to specify configure how mails should be send.

SMTP, directly to destination server
When this option is selected, TortoiseGit directly connects to the SMTP server(s) (on port 25) which is/are responsible for the specific destination email-address(es). This is the default for TortoiseGit (unless some different method is configured).

Important

This might be problematic if your ISP blocks outgoing SMTP connections (port 25) or you have a dialup internet connection. In the ladder case some destination MTAs might not accept your mails or mark them as SPAM.

MAPI
When this option is selected, TortoiseGit uses the Microsoft Messaging API (MAPI) for sending mails. For this, you need a MAPI capable mail client (e.g. Thunderbird or Outlook).

Important

If you don’t send patches as attachments, you might need to make sure that no auto line wrapping takes place. For Thunderbird there is an add-on (Toggle Word Wrap) available.

use configured server
This is the recommended way for sending mails. Just enter the same data as in your mail tools (MUA).

External Program Settings

Here you can define your own programs that TortoiseGit should use. The default setting is to use tools which are installed alongside TortoiseGit.

Read the section called “External Diff/Merge Tools” for a list of some of the external diff/merge programs that people are using with TortoiseGit.

Diff Viewer

 

Figure 2.85. The Settings Dialog, Diff Viewer Page

The Settings Dialog, Diff Viewer Page


An external diff program may be used for comparing different revisions of files. The external program will need to obtain the filenames from the command line, along with any other command line options. TortoiseGit uses substitution parameters prefixed with %. When it encounters one of these it will substitute the appropriate value. The order of the parameters will depend on the Diff program you use.

%base
The original file without your changes
%bname
The window title for the base file
%mine
Your own file, with your changes
%yname
The window title for your file
%bpath
Full path to the original file
%ypath
Full path to your file
%brev
The revision of the original file, if available
%yrev
The revision of the second file, if available
%wtroot
Path to the working tree

The window titles are not pure filenames. TortoiseGit treats that as a name to display and creates the names accordingly. So e.g. if you’re doing a diff from a file in revision 123 with a file in your working tree, the names will be filename: revision 123 and filename: working tree

For example, with ExamDiff Pro:

C:\Path-To\ExamDiff.exe %base %mine --left_display_name:%bname
    --right_display_name:%yname

or with KDiff3:

C:\Path-To\kdiff3.exe %base %mine --L1 %bname --L2 %yname

or with WinMerge:

C:\Path-To\WinMerge.exe -e -ub -dl %bname -dr %yname %base %mine

or with Araxis:

C:\Path-To\compare.exe /max /wait /title1:%bname /title2:%yname
    %base %mine

If you have configured an alternate diff tool, you can access TortoiseGitMerge and the third party tool from the context menus. Context menu → Diff uses the primary diff tool, and ShiftContext menu → Diff uses the secondary diff tool.

Unified-Diff/GNU Diff/Patch File Viewer

Instead of TortoiseUDiff an external viewer program for unified-diff files (GNU diff or patch files) may be used. Basically, there is no parameter required – the file name if the unified diff file to be opened will be appended automatically. If you need to pass it as a different parameter the substitution %1 can be used. There also is the parameter substitution %title available for passing the title to be shown in the title bar (i.e., meta data of the diff).

For example, with Notepad2 (shipped with TortoiseGit):

Notepad2.exe /s "Diff Files" /t %title

or (equivalent)

Notepad2.exe /s "Diff Files" /t %title %1

If you have configured an alternate unified diff tool, you can access TortoiseGitUDiff and the third party tool from the context menus. When you hold the Shift-key while opening the context menu the secondary unified diff tool is started.

Merge Tool

 

Figure 2.86. The Settings Dialog, Merge Tool Page

The Settings Dialog, Merge Tool Page


An external merge program used to resolve conflicted files. Parameter substitution is used in the same way as with the Diff Program.

%base
the original file without your or the others changes
%bname
The window title for the base file
%mine
your own file, with your changes
%yname
The window title for your file
%theirs
the file as it is in the repository
%tname
The window title for the file in the repository
%merged
the conflicted file, the result of the merge operation
%mname
The window title for the merged file
%wtroot
Path to the working tree

For example, with Perforce Merge:

C:\Path-To\P4Merge.exe %base %theirs %mine %merged

or with KDiff3:

C:\Path-To\kdiff3.exe %base %mine %theirs -o %merged
    --L1 %bname --L2 %yname --L3 %tname

or with Araxis:

C:\Path-To\compare.exe /max /wait /3 /title1:%tname /title2:%bname
    /title3:%yname %theirs %base %mine %merged /a2

or with WinMerge (2.12 or later):

C:\Path-To\WinMergeU.exe /e /ub /fr /wl /wm /dl %bname /dm %tname /dr %yname  %base %theirs %mine /o %merged /ar

TortoiseGit creates temporary files with similar file names as the conflicted file (CONFLICTED.BASE.EXTCONFLICTED.LOCAL.EXT and CONFLICTED.REMOTE.EXT). These files are automatically removed when the conflict is marked as resolved using TortoiseGit, TortoiseGitMerge, or TortoiseGitIDiff.

When using an external tool, a conflicted file needs to be marked as revolved in TortoiseGit manually (doing so also removes the temporary files). This can be simplified and might also be automated: TortoiseGit can be configured to synchronously executing the merge tool (Block TortoiseGit while executing the external merge tool). Then TortoiseGit waits until the external merge tool is closed and asks whether to resolve the conflict (the temporary files are removed in any case). If the external merge tool provides a proper exit code (0 for success) you can trust the exit code to automatically mark the conflicted file as resolved (as Git does, cf. the section called “git-mergetool(1)”).

Diff/Merge Advanced Settings

 

Figure 2.87. The Settings Dialog, Diff/Merge Advanced Dialog

The Settings Dialog, Diff/Merge Advanced Dialog


In the advanced settings, you can define a different diff and merge program for every file extension. For instance you could associate Photoshop as the “Diff” Program for .jpg files 🙂

To associate using a file extension, you need to specify the extension. Use .bmp to describe Windows bitmap files.

Alternative editor

 

Figure 2.88. The Settings Dialog, Alternative editor Page

The Settings Dialog, Alternative editor Page


The original Windows NotePad program does not behave well on files which do not have standard CR-LF line-endings. However, a lot of git configuration files do not have a standard CR-LF line-ending. Because of this TortoiseGit uses a free (shipped) NotePad replacement Notepad2 which displays the line-endings correctly by default.

Saved Data Settings

 

Figure 2.89. The Settings Dialog, Saved Data Page

The Settings Dialog, Saved Data Page


For your convenience, TortoiseGit saves many of the settings you use, and remembers where you have been lately. If you want to clear out that cache of data, you can do it here.

URL history
Whenever you checkout a working tree, merge changes or use the repository browser, TortoiseGit keeps a record of recently used URLs and offers them in a combo box. Sometimes that list gets cluttered with outdated URLs so it is useful to flush it out periodically.

If you want to remove a single item from one of the combo boxes you can do that in-place. Just click on the arrow to drop the combo box down, move the mouse over the item you want to remove and type Shift+Del.

Log messages (Input dialog)
TortoiseGit stores recent commit log messages that you enter. These are stored per repository, so if you access many repositories this list can grow quite large.
Log messages (Show log dialog)
TortoiseGit caches log messages fetched by the Show Log dialog to save time when you next show the log. If someone else edits a log message and you already have that message cached, you will not see the change until you clear the cache. Log message caching is enabled on the Log Cache tab.
Dialog sizes and positions
Many dialogs remember the size and screen position that you last used.
Action log
TortoiseGit keeps a log of everything written to its progress dialogs. This can be useful when, for example, you want to check what happened in a recent update command.

The log file is limited in length and when it grows too big the oldest content is discarded. By default 4000 lines are kept, but you can customize that number.

From here you can view the log file content, and also clear it.

Git

The hierarchical git configuration

Git uses the concept of a hierarchical configuration (cf. the section called “git-config(1)”). I.e. there are multiple levels; settings in higher levels override values in lower levels. The Effective tab shows you the effective values for the current scope (read-only).

Select any level (e.g. Local – the current repository settings stored locally in .git/config, Project – settings for the current repository stored within the repository in /.tgitconfig, Global – settings for the current user, System – settings for all users of the system) to see the values stored there.

In order to change settings select a level, enter the values, select where to store to and click on Apply.

Caution

If you want to inherit a value of a higher level don’t leave a textbox empty (this means than an empty string will be stored, which might evaluate to true), select Inherit instead.

Git Config

 

Figure 2.90. The Settings Dialog, Git

The Settings Dialog, Git

Set git basic configuration

Name and Email are required for git to operate correctly.

AutoCrlf If true, makes git convert CRLF at the end of lines in text files to LF when reading from the filesystem, and convert in reverse when writing to the filesystem. The variable can be set to input, in which case the conversion happens only while reading from the filesystem but files are written out with LF at the end of lines. A file is considered “text” (i.e. be subjected to the autocrlf mechanism) based on the file’s crlf attribute, or if crlf is unspecified, based on the file’s contents.

SafeCrlf If true, makes git check if converting CRLF as controlled by core.autocrlf is reversible. Git will verify if a command modifies a file in the work tree either directly or indirectly. For example, committing a file followed by checking out the same file should yield the original file in the work tree. If this is not the case for the current setting of core.autocrlf, git will reject the file. The variable can be set to “warn”, in which case git will only warn about an irreversible conversion but continue the operation.

QuotePath Controls the core.quotepath setting which might be interesting when you have non ASCII filenames:

 

Remote

 

Figure 2.91. The Settings Dialog, Git, Remote

The Settings Dialog, Git, Remote

Set git remote configuration

Remote The name of the remote, usually the default one is called origin.

URL The URL of the remote. It can be http / https / ssh / git protocol or local file system.

Push URL The Push URL of the remote. It is for some cases you cannot use the same url to fetch and push (for example, fetch via passwordless git protocol but push via ssh). Otherwise, leave it empty. Note: This is not designed for forking workflow. For forking workflow, you should have 2 remotes. The format is the same as URL.

Putty Key The putty key file to load when performing network operations.

Tag This sets remote.<name>.tagopt config, which controls the default tag fetching behaviour of the specified remote. Reachable: Download tags that are reachable from remote branch heads (default behaviour). None: No tags are downloaded (--no-tags). (git 1.9 and later) All: All tags as well as branches are downloaded (--tags). (prior to git 1.9) All tags only: Only all tags are downloaded but no branches are downloaded (--tags). Use case of All: Always fetch tags from a git-svn mirror. Subversion tags never exist on trunk, so such tags are not reachable from branch heads.

Push Default Selecting this means to always push to this remote Default is false.

Prune This sets remote.<name>.prune config, which controls the default prune option of remote tracking branches of the specified remote. Default is false.

Credential

 

Figure 2.92. The Settings Dialog, Git, Credential

The Settings Dialog, Git, Credential

Set simple credential helper configuration

Advanced This is used if the credential helper configuration does not match any simple settings. If you choose other than Advanced, except the corrsponding credential.helper, all other config keys credential.* or credential.*.* are removed.

None No credential config keys are in all config levels.

wincred – this repository only wincred is enabled in local config. This option is visible only if wincred is installed.

winstore – this repository only winstore is enabled in local config. This option is visible only if winstore is installed for current Windows user.

wincred – current Windows user wincred is enabled in global config. This option is visible only if wincred is installed.

winstore – current Windows user winstore is enabled in global config. This option is visible only if winstore is installed for current Windows user.

wincred – all Windows users wincred is enabled in system config. This option is visible only if wincred is installed.

Advanced credential helper configuration

Config type Either Local, Global or System config.

URL Define a context-specific configuration based on URL pattern. By default, the path component is not considered as a different context.

Helper Select a credential helper program. wincred and winstore are predefined in TortoiseGit. It is possible to use other credential helpers or with extra options.

Username A default username, if one is not provided in the URL.

Use HTTP path component Also considers the path component of URL to match the configuration context.

 

Client Side Hook Scripts

 

 

Figure 2.93. The Settings Dialog, Hook Scripts Page

The Settings Dialog, Hook Scripts Page


This dialog allows you to set up hook scripts which will be executed automatically when certain TortoiseGit actions are performed on the client side.

For various security and implementation reasons, hook scripts are defined locally on a machine, rather than as project properties. You define what happens, no matter what someone else commits to the repository. Of course you can always choose to call a script which is itself under version control.

One application for such hooks might be to call a program like GitWCRev.exe  to update version numbers after a commit, and perhaps to trigger a rebuild.

 

Figure 2.94. The Settings Dialog, Configure Hook Scripts

The Settings Dialog, Configure Hook Scripts


To add a new hook script, simply click Add and fill in the details.

There are currently six types of hook script available

Start-commit
Called before the commit dialog is shown. You might want to use this if the hook modifies a versioned file and affects the list of files that need to be committed and/or commit message. However you should note that because the hook is called at an early stage, the full list of objects selected for commit is not available.
Pre-commit
Called after the user clicks OK in the commit dialog, and before the actual commit begins. This hook has a list of exactly what will be committed.
Post-commit
Called after the commit finished successfully.
Pre-push
Called before actual Git push begins.
Post-push
Called after pushing finishes (whether successful or not).
Pre-rebase
Called before rebasing starts (after clicking on Start or autostart).

A hook is defined for a particular working tree path. You only need to specify the top level path; if you perform an operation in a sub-folder, TortoiseGit will automatically search upwards for a matching path. Use * for matching all working trees.

If the checkbox Run for this repository is checked then the hook script is attached to the current repository and configured automatically for every clone and checkout (the hook information is stored in the file .tgitconfig in the repository root so that it will be automatically shared with all other developers using TortoiseGit >= 2.7.1; for security reasons TortoiseGit asks the user before running a hook which is configured and shared in the repository). In this case, you can specify paths for the command line with the replacement string %root% for the path to the working tree folder. The hook script has to be inside the repository and also be checked out of course (please also note the security implications below). If a user locally configures a hook for the exact repository root folder, the client side defined hook takes precedence.

Next you must specify the command line to execute, starting with the path to the hook script or executable. This could be a batch file, an executable file or any other file which has a valid windows file association, eg. a perl script.

The command line includes several parameters which get filled in by TortoiseGit. The parameters passed depend upon which hook is called. Each hook has its own parameters which are passed in the following order:

Start-commit
PATH MESSAGEFILE CWD
Pre-commit
PATH MESSAGEFILE CWD
Post-commit
CWD (commit was amend (true or false))
Pre-push
ERROR CWD
Post-push
ERROR CWD
Pre-rebase
(upstream branch) (rebased branch) ERROR CWD

The meaning of each of these parameters is described here:

PATH
A path to a temporary file which contains all the paths for which the operation was started in UTF-8 encoding. Each path is on a separate line in the temp file.
MESSAGEFILE
Path to a file containing the log message for the commit. The file contains the text in UTF-8 encoding. After successful execution of the start-commit and pre-commit hooks, the log message is read back, giving the hook a chance to modify it.
ERROR
Path to a file containing the error message. If there was no error, the file will be empty.
CWD
The current working directory with which the script is run. This is set to the working tree root.

Note that although we have given these parameters names for convenience, you do not have to refer to those names in the hook settings. All parameters listed for a particular hook are always passed, whether you want them or not 😉

If you want the Git operation to hold off until the hook has completed, check Wait for the script to finish.

Normally you will want to hide ugly DOS boxes when the script runs, so Hide the script while running is checked by default.

Caution

If you are executing a versioned file/script from the repository, please note that the file possibly gets altered by third parties unnoticed (e.g. after pull or merge).

Issue Tracker Integration

TortoiseGit can use a COM plugin to query issue trackers when in the commit dialog. The use of such plugins is described in the section called “Getting Information from the Issue Tracker”. If your system administrator has provided you with a plugin, which you have already installed and registered, this is the place to specify how it integrates with your working tree.

 

Figure 2.95. The Settings Dialog, Issue Tracker Integration Page

The Settings Dialog, Issue Tracker Integration Page
The Settings Dialog, Issue Tracker Integration Page


Click on Add… to use the plugin with a particular working tree. Here you can specify the working tree path, choose which plugin to use from a drop down list of all registered issue tracker plugins, and any parameters to pass. The parameters will be specific to the plugin, but might include your user name on the issue tracker so that the plugin can query for issues which are assigned to you.

Config

 

Figure 2.96. The Settings Dialog, Issue Tracker Config

The Settings Dialog, Issue Tracker Config


See the section called “Integration with Bug Tracking Systems / Issue Trackers” for a descriptions of the different options.

Important

If you have problems entering/storing data please see the section called “The hierarchical git configuration”.

TortoiseGitBlame Settings

 

Figure 2.97. The Settings Dialog, TortoiseGitBlame Page

The Settings Dialog, TortoiseGitBlame Page


The settings used by TortoiseGitBlame are controlled from the main context menu, not directly with TortoiseGitBlame itself.

Colors
TortoiseGitBlame can use the background colour to indicate the age of lines in a file. You set the endpoints by specifying the colours for the newest and oldest revisions, and TortoiseGitBlame uses a linear interpolation between these colours according to the repository revision indicated for each line.
Font
You can select the font used to display the text, and the point size to use. This applies both to the file content, and to the author and revision information shown in the left pane.
Tab size
Defines how many spaces to use for expansion when a tab character is found in the file content.
Detect moved or copied lines
Disabled Traditional blame algorithm, the search for parents is limited to the file and will follow renames.

Within file Extra passes of inspection are applied to detect moved and copied lines within the file (git blame -M).

From modified files In addition to the annotated file detect moved or copied lines from all modified files within a commit (git blame -C).

At file creation In addition to the annotated file and the modified files within a commit detect moved or copied lines from other files in the commit that creates the file (git blame -C -C).

From existing files In addition detect moved or modified lines from other files in any commit (git blame -C -C -C).

Number of characters required for moved or copied line detection
Lower bound on the number of alphanumeric characters that Git must detect as moving/copying between files for it to associate those lines with the parent commit.

Within a file Number of alphanumeric characters required to detect moving lines within a file (git blame -M|<num>|).

Between files Number of alphanumeric characters required to detect moved or copied lines between files (git blame -C|<num>|).

Ignore whitespace
Defines if whitespace is ignored when comparing the parent’s version and the child’s version to find where the lines came from (git blame -w).
Show complete log
Defines if the log should be complete, i.e. the log contains all changes for a file, even the changes have no impact on the file content of the annotated revision. If deactivated the log contains only revisions which last modified a line for the annotated revision.
Follow renames
Defines if the log should follow renames, i.e. if the log does not stop when a file was renamed in the past, but include all changes before the rename.

TortoiseGitUDiff Settings

 

Figure 2.98. The Settings Dialog, TortoiseGitUDiff Page

The Settings Dialog, TortoiseGitUDiff Page


The settings used by TortoiseGitUDiff are controlled from the main context menu, not directly with TortoiseGitUDiff itself.

Colors
The default colors used by TortoiseGitUDiff are usually ok, but you can configure them here.
Font
You can select the font used to display the text, and the point size to use.
Tabs
Defines how many spaces to use for expansion when a tab character is found in the file diff.

Advanced Settings

A few infrequently used settings are available only in the advanced page of the settings dialog. These settings modify the registry directly and you have to know what each of these settings is used for and what it does. Do not modify these settings unless you are sure you need to change them.

AutoCompleteMinChars
The minimum amount of chars from which the editor shows an auto-completion popup. The default value is 3.
AutocompleteParseMaxSize
The auto-completion list shown in the commit message editor can parse source code files and displays methods and variable names. This limits files to be parsed by their size in bytes. The default value is 300000.
AutocompleteParseUnversioned
The auto-completion list shown in the commit message editor can parse source code files and displays methods and variable names. By default only versioned files are parsed. Set this value to true in order to also parse unversioned files.
AutocompleteRemovesExtensions
The auto-completion list shown in the commit message editor displays the names of files listed for commit. To also include these names with extensions removed, set this value to true.
BlockStatus
If you don’t want the explorer to update the status overlays while another TortoiseGit command is running (e.g. Update, Commit, …) then set this value to true.
CacheTrayIcon
To add a cache tray icon for the TGitCache program, set this value to true. This is really only useful for developers as it allows you to terminate the program gracefully.
CacheSave
To disable loading and saving cache for the TGitCache program, set this value to false. This is useful if you do not want to write the cache to disk, which can be a large file. The default is true.
CygwinHack
This enables some workarounds which enables TortoiseGit to be used with Cygwin Git. Cygwin Git, however, is not officially supported by TortoiseGit. See the section called “General Settings” for more information. The default is false.
Debug
Set this to true if you want a dialog to pop up for every command showing the command line used to start TortoiseGitProc.exe.
DebugOutputString
Set this to true if you want TortoiseGit to print out debug messages during execution. The messages can be captured with special debugging tools only (like Debug View from the SysInternals Suite).
DiffSimilarityIndexThreshold
This setting controls which similarity index threshold is passed to git diff (as the value for the parameters -M and -C in per cent, cf. --find-copies in the section called “git-diff(1)”). The default value is 50. You can disable finding renamed and copied files by setting this to 0, for only detecting exact renames use 100. You might need to remove the cache files tortoisegit.data and tortoisegit.index in the .git folders after changing this value.
FullRowSelect
The status list control which is used in various dialogs (e.g., commit, check-for-modifications, add, revert, …) uses full row selection (i.e., if you select an entry, the full row is selected, not just the first column). This is fine, but the selected row then also covers the background image on the bottom right, which can look ugly. To disable full row select, set this value to false.
GroupTaskbarIconsPerRepo
This option determines how the Win7 taskbar icons of the various TortoiseGit dialogs and windows are grouped together.

  1. The default value is 3. With this setting, the icons are grouped together by application type per working tree. All dialogs from TortoiseGit of one working tree are grouped together, all windows from TortoiseGitMerge of one working tree are grouped together, … For example, if you have a log dialog and a push dialog open for working tree C:\A, and a check-for-modifications dialog and a log dialog for working tree C:\B, then there are two application icon groups shown in the Win7 taskbar, one group for each working tree. But TortoiseGitMerge windows are not grouped together with TortoiseGit dialogs.

     

    Figure 2.99. Taskbar with default grouping

    Taskbar with default grouping
  2. If set to 4, then the grouping works as with the setting set to 3, except that TortoiseGit, TortoiseGitMerge, TortoiseGitBlame, TortoiseGitIDiff and TortoiseGitUDiff windows of one working tree are all grouped together. For example, if you have the log dialog open and then double click on a modified file, the opened TortoiseGitMerge diff window will be put in the same icon group on the taskbar as the log dialog icon.

     

    Figure 2.100. Taskbar with repository grouping

    Taskbar with repository grouping
  3. If set to 1, then the grouping works as with the setting set to 3 (grouping by application), except that grouping takes place independently of the working tree. This was the default before TGit 1.8.1.2.
  4. If set to 2, then the grouping works as with the setting set to 4, except that grouping takes place independently of the working tree. Thus all TortoiseGit icons are grouped to only show one icon.
GroupTaskbarIconsPerRepoOverlay
This has no effect if the option GroupTaskbarIconsPerRepo is set to 0 (see above).

If this option is set to true, then every icon on the Win7 taskbar shows a small colored rectangle overlay, indicating the working tree the dialogs/windows are used for.

 

Figure 2.101. Taskbar grouping with repository color overlays

Taskbar grouping with repository color overlays
LogIncludeWorkingTreeChanges
This options controls whether the log dialog includes an entry for “Working Tree Changes”. When using network drives (e.g., Samba), the log dialog might hang for big project because of large of files when calculating the working tree changes. Therefore, the possible expensive calculation can be disabled. The default is true.
LogShowSuperProjectSubmodulePointer
This option defines whether the commit of a submodule to which the super repository points to is highlighted with a branch like label (cf. issue #2826). The default is true.
MaxRefHistoryItems
This options sets the maximum browse ref history (Right click ref hyperlink to find it). The default is 5.
Msys2Hack
This enables some workarounds which enables TortoiseGit to be used with Msys2 Git (do not enable this for the Git for Windows package!). Msys2 Git, however, is not officially supported by TortoiseGit.  The default is false.
NamedRemoteFetchAll
When set to falsefetch and pull don’t fetch the default refspec for a named remote. The default is true.
NoSortLocalBranchesFirst
This option toggles if the branches are sorted fully by name (true) or if local branches should appear above remote ones (git default, false). The default value is false.
NumDiffWarning
If you want to show the diff at once for more items than specified with this settings, a warning dialog is shown first. The default is 10.
OverlaysCaseSensitive
Starting with TortoiseGit 2.4.0 the overlay icons are case sensitive on filenames. The change was introduced to fix several issues related to casing (such as issue #2654) and git tools (such as git log) being case sensitive on paths. Upon issue #2980 this is configurable starting from TortoiseGit 2.5.0, however, enabling is not recommended. The default is true.
ProgressDlgLinesLimit
The Git progress dialog shows the output of the executed git.exe commands. The number of lines are limited for performance reasons. The default is 50000, minimum is 50.
ReaddUnselectedAddedFilesAfterCommit
This option toggles the re-adding of unselected added files after a commit. Up to TortoiseGit 1.7.10 added files which were not checked on a commit, were removed from the index and unversioned after the commit. Set this value to false to restore the old behavior. Set this value to true to readd these files again after the commit (default).
RefreshFileListAfterResolvingConflict
This option toggles whether the file lists of the commit dialog, resolve conflicts and rebase dialog automatically refresh when a conflict is marked as resolved. By default this is set to true, but in certain cases, e.g. when refreshing takes lots of time or you want to prevent the scrolling to the top, this can be set to false. However, then a manual refresh (e.g. by pressing F5) is necessary.
RememberFileListPosition
This option toggles whether the file lists of the add, commit, revert, resolve and rebase dialog remember the last selected line on a refresh. The default is true.
SanitizeCommitMsg
This option trims space, CR, LF characters at the end of commit messages you enter. This covers commit, rebase, notes, annotated tag. This value is true by default. If such trimming breaks your scripts/plugins, you can disable trimming by set it to false.
ScintillaDirect2D
This option enables the use of Direct2D accelerated drawing in the Scintilla control which is used as the edit box in e.g. the commit dialog (also for the attached patch window), the unified diff viewer and TortoiseGitBlame. With some graphic cards, however, this sometimes doesn’t work properly so that the cursor to enter text isn’t always visible, the redraw does not work or the background is flashing. It’s disabled by default. You can turn this feature on by setting this value to true.
ShellMenuAccelerators
TortoiseGit uses accelerators for its explorer context menu entries. Since this can lead to doubled accelerators (e.g. the Git Commit has the Alt-C accelerator, but so does the Copy entry of explorer). If you don’t want or need the accelerators of the TortoiseGit entries, set this value to false.
ShowContextMenuIcons
This can be useful if you use something other than the windows explorer or if you get problems with the context menu displaying incorrectly. Set this value to false if you don’t want TortoiseGit to show icons for the shell context menu items. Set this value to true to show the icons again.
ShowAppContextMenuIcons
If you don’t want TortoiseGit to show icons for the context menus in its own dialogs, set this value to false.
ShowListBackgroundImage
If you do not want to have a small background image in list controls (e.g. Commit Dialog) set this value to false. Set this value to true to show the images again (default).
SquashDate
Using this setting you can control which date is used on squashing commits. Set this value to 1 if you want to use the date of the latest commit. Set this value to 2 if you want to use the current date. Set this value to 0 to use the date of the first commit (into which all others are squashed, default).
StyleCommitMessages
The commit and log dialog use styling (e.g. bold, italic) in commit messages (see the section called “Commit Log Messages” for details). If you don’t want to do this, set the value to false.
TGitCacheCheckContentMaxSize
TGitCache checks the content of files by hashing them and comparing the SHA1 in order to calculate the file statuses if the timestamps (to index) mismatch. This option allows to restrict this behavior for files which do not exceed a specific size (in KiB). The default maximum file size is 10 MiB (i.e., 10 * 1024 KiB = 10240 KiB). Set this to 0 in order to make TGitCache only check the timestamps (as TortoiseGit 1.7.0 up to 1.7.12 did; before TortoiseGit 1.9.0.0 this was controlled by TGitCacheCheckContent). Disabling checking the file contents can lower disk access and CPU time of the TGitCache process, however, overlay accuracy might not be as accurate as with checking of the file contents enabled.
UseCustomWordBreak
The standard edit controls do not stop on forward slashes like they’re found in paths and urls. TortoiseGit uses a custom word break procedure for the edit controls. If you don’t want that and use the default instead, set this value to 0. If you only want the default for edit controls in combo boxes, set this value to 1.
UseLibgit2
This makes TortoiseGit to use libgit2 as much as possible (e.g. for adding files to the index). If you do not want TortoiseGit to use libgit2 for file operations, set this value to false.
VersionCheck
TortoiseGit checks whether there’s a new version available about once a week. If you don’t want TortoiseGit to do this check, set this value to false.
VersionCheckPreview
Set this to true to make TortoiseGit also check for new preview releases. The default in all stable releases is false.
Win8SpellChecker
Set this to true to make TortoiseGit use the Windows 8+ spell checker (cf. the section called “Spellchecker”). The default is false.

Exporting TortoiseGit Settings

If you want to export all your client settings to use on another computer you can do so using the Windows registry editor regedt32.exe. Go to the registry key HKCU\Software\TortoiseGit and export it to a reg file. On the other computer, just import that file again (usually, a double click on the reg file will do that).

Remember to save Git’s general settings, which you can find in the Git configuration file .gitconfig and/or the folder .config/git which both are located in your userprofile directory.

Features

Major Features of  TortoiseGit

  • Shell integration
  • Icon overlays
  • Easy access to Git commands
  • Distributed version control
  • Atomic commits
  • Strong support for non-linear development Efficient handling of large projects
  • Cryptographic authentication of history
  • Efficient branching and tagging
  • Toolkit design

 

Videos

TortoiseGit Basics

 How to install and setup TortoiseGit then a demo with GitHub

TortoiseGit on cloud

Related Posts