Table of Contents
Since all commands for TortoiseGit are controlled through command line parameters, you can automate it with batch scripts or start specific commands and dialogs from other programs (e.g. your favorite text editor).
Remember that TortoiseGit is a GUI client, and this automation guide shows you how to make the TortoiseGit dialogs appear to collect user input. If you want to write a script which requires no input, you should use the official Git command line client instead.
The TortoiseGit GUI program is called TortoiseGitProc.exe
. All commands are specified with the parameter /command:abcd
where abcd
is the required command name. Most of these commands need at least one path argument, which is given with /path:"some\path"
. In the following table the command refers to the /command:abcd
parameter and the path refers to the /path:"some\path"
parameter.
Since some of the commands can take a list of target paths (e.g. committing several specific files) the /path
parameter can take several paths, separated by a *
character.
TortoiseGit uses temporary files to pass multiple arguments between the shell extension and the main program. From TortoiseGit 1.5.0 on and later, /notempfile
parameter is obsolete and there is no need to add it anymore.
The progress dialog which is used for commits, updates and many more git.exe
commands usually stays open after the command has finished until the user presses the button. This can be changed in the settings dialog. You may use /closeonend
parameter to override the this setting from your batch file.
To close the (git.exe
) progress dialog at the end of a command automatically without using the permanent setting you can pass the /closeonend
parameter.
/closeonend:0
Close manually
/closeonend:1
Auto-close if no further options are available
/closeonend:2
Auto-close if no errors
The table below lists all the commands which can be accessed using the TortoiseGitProc.exe command line. As described above, these should be used in the form /command:abcd
. In the table, the /command
prefix is omitted to save space.
Table D.1. List of available commands and options
Command | Description |
---|---|
:about | Shows the about dialog. This is also shown if no command is given. |
:bisect | Allows to control the bisect logic of TortoiseGit. Use the /start parameter to start a bisect you can specify /good:REF and /bad:REF here). When bisect is active, you can use /good , /bad , /skip and /reset to control the bisect process. |
:fetch | Opens the fetch dialog. Use the /remote parameter to control the remote which should be pre-selected. |
:firststart | Shows the first start wizard. |
:log | Opens the log dialog. The /path specifies the file or folder for which the log should be shown. Additional options can be set: /rev:"SHA1" highlights and automatically scrolls to the specified revision, /endrev:"SHA1/branch" , shows the log of the specified revision, /startrev:"SHA1/branch" (only in combination with endrev ), shows the log of the revision range startrev..endrev , /range:"gitrevision" , shows the log of the entered gitrevision (e.g. "branch1...branch2 "), /limit:"N SCALE" , SCALE could be "Commit", "Year", "Month", "Week"; it shows last N commit(s), last N year(s), last N month(s), last N week(s). Use /limit:0 to disable any default limit. /findstring:"filterstring" fills in the filter text, /findtext forces the filter to use text, not regex, or /findregex forces the filter to use regex, not simple text search, and /findtype:X with X being a number between 0 and 127. The numbers are the sum of the following options:
/outfile:path\to\file is specified, the selected revision is written to that file when the log dialog is closed. |
:clone | Opens the clone dialog. The /url specifies the URL to clone from. The /path specifies the target directory to clone to. If /exactpath is not specified, the repository name (without trailing .git) will be appended to target directory. This is the default behavior. If /exactpath is specified, the exact /path is considered the target directory, without appending repository name to it. |
:commit | Opens the commit dialog. The /path specifies the target directory or the list of files to commit. You can also specify the /logmsg switch to pass a predefined log message to the commit dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path , where path points to a file containing the log message. To pre-fill the bug ID box (in case you've set up integration with bug trackers properly), you can use the /bugid:"the bug id here" to do that. |
:add | Adds the files in /path to version control. |
:revert | Reverts local modifications of a working tree. The /path tells which items to revert. |
:cleanup | Cleans up the working tree in /path . |
:resolve | Marks a conflicted file specified in /path as resolved. If /noquestion is given, then resolving is done without asking the user first if it really should be done. |
:repocreate | Creates a repository in /path |
:switch | Opens the switch dialog. The /path specifies the target directory. |
:export | Exports a revision of the repository in /path to a zip file. |
:merge | Opens the merge dialog. The /path specifies the target directory. The /abort opens abort merge dialog. |
:settings | Opens the settings dialog. |
:remove | Removes the file(s) in /path from version control. |
:rename | Renames the file in /path . The new name for the file is asked with a dialog. |
:diff | Starts the external diff program specified in the TortoiseGit settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. To explicitly set the revision use /startrev:xxx (BASE revision) and /endrev:xxx . Add /unified to get a unified diff. Add /line:NN to get scroll to the mentioned line. |
:showcompare | Depending on revisions to compare and the path, this either shows a unified diff (if the option |
:conflicteditor | Starts the conflict editor specified in the TortoiseGit settings with the correct files for the conflicted file in /path . |
:help | Opens the help file. |
:repostatus | Opens the check-for-modifications dialog. The /path specifies the working tree directory. |
:repobrowser | Starts the repository browser dialog, pointing to the working tree given in /path . An additional option /rev:xxx can be used to specify the revision which the repository browser should show. If the /rev:xxx is omitted, it defaults to HEAD. |
:ignore | Adds all targets in /path to the ignore list, i.e. adds file(s) to the .gitignore file. |
:blame | Opens TortoiseGitBlame for the file specified in If the option If the option |
:cat | Saves a file from an URL or working tree path given in /path to the location given in /savepath:path . The revision is given in /revision:xxx . This can be used to get a file with a specific revision. |
:pull | Opens the pull dialog in the working tree located in /path . |
:push | Opens the push dialog in the working tree located in /path . |
:rebase | Opens the rebase dialog for the working tree located in /path . To select the upstream branch/commit use the /upstream option. For activating the force option use /force . |
:stashsave | Opens the stash save dialog for the working tree located in /path . A pre-filled message can be achieved by using the /msg parameter. |
:stashapply | Applies to latest stash to the working tree located in /path . |
:stashpop | Applies to latest stash to the working tree located in /path and drops the latest stash entry. |
:subadd | Opens the submodule add dialog. /path . |
:subupdate | Opens the submodule update dialog for and filters the submodules regarding the folder /path . |
:subsync | Syncs the submodule information for the working tree located in /path . |
:reflog | Opens the RefLog dialog for the repository located in /path . |
:refbrowse | Opens the browse references dialog for the repository located in /path . |
:updatecheck | /visible : Shows the dialog even if no newer TortoiseGit version is available. /force : Shows file list for download even if the latest TortoiseGit has been installed. |
:revisiongraph | Shows the revision graph for the repository given in /path .To create an image file of the revision graph for a specific path, but without showing the graph window, pass |
:daemon | Launches the Git Daemon for the repository given in /path . |
:pgpfp | Prints the TortoiseGit Release Signing Key fingerprint. If you trust the current TortoiseGit installation, this can be used as a trust anchor to future releases. |
:tag | Opens the Create Tag dialog. The /path specifies the repository folder. Additional options can be set: /rev:"ref" tags on the specified ref/commit, /name:"tag_name" fills the Tag name in Create Tag dialog. |
:branch | Opens the Create Branch dialog. The /path specifies the repository folder. Additional options can be set: /rev:"ref" tags on the specified ref/commit, /name:"tag_name" fills the Tag name in Create Tag dialog. |
:lfslocks | Opens the Show Locks dialog. More info in LFS Locking. |
:worktreelist | Opens the Worktree List dialog. |
Examples (which should be entered on one line):
TortoiseGitProc.exe /command:commit /path:"d:\git_wc\file1.txt*c:\git_wc\file2.txt" /logmsg:"test log message" /closeonend:2 TortoiseGitProc.exe /command:log /path:"c:\git_wc\file1.txt" /startrev:master~100 /endrev:master
When calling TortoiseGit from within the MSYS environment, you can also use more *nix style command line parameters:
TortoiseGitProc.exe -command commit -path "d:\git_wc\file1.txt*c:\git_wc\file2.txt" -logmsg "test log message" -closeonend 2