Image of What is git citool? | Interactive commits in Git


Table of Contents


The git citool command is a tool for developers that allows for interactive staging and committing of changes in a git repository. This command is a graphical alternative to git commit. It provides a visual interface for reviewing and selecting specific changes to include in a commit, as well as writing commit messages.

This can be particularly useful for developers working on larger projects with multiple contributors. It allows for more precise control over which changes are included in each commit and helps keep the project's commit history clean and organized. Additionally, the git citool command can be useful for beginners or developers new to git, as it provides a more user-friendly way to understand and interact with the git staging process.

Let's explore a few quick tips to help you get started with git citool.

How to use git citool?

To use the git citool command, follow these steps:

  1. Open a terminal or command prompt window and navigate to the directory containing the local Git repository you want to use citool with.
cd gitexample
  1. If you are working on Linux/Ubuntu or MacOS, you must first install the git-gui package. Type the appropriate command for your operating system. For Linux, enter the following command:
sudo apt-get install git-gui

For macOS, enter this command instead:

brew install git-gui

If you are working on Windows, proceed to the next step.

  1. Type git citool and press Enter. This will open the citool interface, which allows you to stage changes and write commit messages interactively. **If you have not previously installed the git-gui package, you may receive the git: 'citool' is not a git command error message when using the git citool command. Please refer to step 2 to install the package for your OS.

  2. Review the changes in your repository by using the arrow keys to navigate through the file list. Changes that are staged for commit will be highlighted in green, and changes that are not staged will be highlighted in red.

  3. To stage a change for commit, press the Ctrl+T. To unstage a change, press Ctrl+U. Or you can use the GUI buttons located between the Staged Changes and Commit Message areas.

  4. Enter your commit message into the Commit Message editor.

  5. Press Ctrl+Return to exit the citool interface and commit the changes to your repository or click Commit.

  6. If you want to push the changes to a remote repository, use the [git push](link to git push article) command by clicking Push.

What about git gui citool?

The git citool command is essentially an alias for git commit. When you use git citool, you are creating a commit. So why choose `git citool?

Because you can use the git gui citool command to launch a graphical version of citool. Developers may use git gui citool instead of git commit because it provides a more intuitive way to understand the commit process due to the visual interface. It’s a popular tool for newer git users or those that prefer to use a GUI when creating commit messages. Although veteran developers may prefer the standard git commit method because they can use their preferred text editors, and it provides a streamlined process.

The visual representation of modifications allows developers to easily grasp the changes made, making it an ideal choice for beginners and experts alike looking to streamline their workflow.

Using the GUI has one distinct advantage over git commit – the graphical interface is not limited to one commit. While git citool will close after a single commit, the GUI will remain open so you can handle more than one commit at a time.

Essential git citool Flags

Here are some common flags that you can use to get more value from git citool:

  • -c, --create – Create a new commit with the selected changes rather than editing an existing commit.
  • -i, --include – Include the specified files in the commit. This flag can be used multiple times to include multiple files.
  • -e, --edit – Open the commit message in the user's editor rather than displaying it in the terminal.
  • -t, --template – Use the specified file as the commit message template.
  • -m, --message – Use the specified message as the commit message. This flag can be used multiple times to specify multiple lines of the commit message.
  • -s, --signoff – Add a "Signed-off-by" line to the end of the commit message, indicating that you have agreed to the Developer Certificate of Origin.
  • -S, --gpg-sign – GPG-sign the commit.
  • -p, --patch – Interactively select which changes to include in the commit.
  • -a, --all – Include all changes, including deleted files, in the commit.
  • -n, --no-verify – Bypass the pre-commit and commit-msg hooks.
  • --amend – Amend the commit message and include the specified changes in the last commit rather than creating a new commit.
  • --reset-author – Reset the author information for the commit to the user's current Git config settings.
  • --cleanup – Specify how to clean up the commit message. Valid options include "strip," "whitespace", "verbatim", and "default".


In conclusion, git citool is a valuable tool for managing and committing code changes in a Git repository. It allows you to easily visualize the changes they have made and choose which ones to commit, making it easier to collaborate with others and maintain a clear history of code changes. Whether you're a beginner or an experienced developer, git citool can help you work more efficiently and effectively. While the git command line interface is still widely used, git citool can be a great alternative or addition to work with, providing developers with a more intuitive and streamlined approach to managing commits.

So, next time you're working on a project, consider giving git citool a try and see how it can benefit your workflow.

Next steps

If you're interested in learning more about how Git works under the hood, check out our Decoding Git Guidebook for Developers, which dives into Git's code in an accessible way. We wrote it for curious developers to learn how Git works at the code level. To do this, we documented the first version of Git's code and discussed it in detail.

We hope you enjoyed this post! Feel free to shoot me an email at with any questions or comments.


  1. Git SCM Docs -

Final Notes

Recommended product: Git Guidebook for Developers