LinuxCommandLibrary

git-cola

Graphical Git client for repository management

TLDR

Start the GUI

$ git cola
copy

Start the GUI in amend mode
$ git cola --amend
copy

Prompt for a Git repository. Defaults to the current directory
$ git cola --prompt
copy

Open the Git repository at mentioned path
$ git cola [[-r|--repo]] [path/to/git-repository]
copy

Apply the path filter to the status widget
$ git cola [[-s|--status-filter]] [filter]
copy

SYNOPSIS

git cola [global-options] [mode-option] [--] [<pathspec>...]

PARAMETERS

--help, -h
    Print help message

--version, -V
    Print version information

--verbose, -v
    Increase verbosity

--no-gui
    Run without GUI (CLI mode)

--status
    Open commit/status UI (default)

--diff
    Open diff viewer UI

--grep
    Open grep search UI

--branch
    Open branch manager UI

--remote
    Open remote manager UI

--stash
    Open stash manager UI

--archive
    Create repository archive

--clone=<URL>
    Clone repository from URL

--rebase
    Open rebase UI

--merge
    Open merge UI

<pathspec>...
    Limit to specific paths/files

DESCRIPTION

Git Cola is an intuitive, cross-platform graphical user interface for Git version control. Built with Python and Qt, it offers a streamlined workflow for common Git tasks including staging changes, committing, branching, merging, rebasing, and diff viewing. Key features include a powerful three-panel commit interface for easy hunk selection and drag-and-drop commit reordering, integrated diff and merge tools, branch management, remote operations, and grep search. It supports both novice users with visual aids and power users via keyboard shortcuts and command-line integration. Git Cola launches the status window by default, showing unstaged/staged changes, but supports specialized modes like diff, grep, and clone. Ideal for visual Git management without sacrificing speed or flexibility.

Available on Linux, macOS, and Windows, it's lightweight yet feature-rich, emphasizing usability with themes, internationalization, and extensibility via plugins.

CAVEATS

Graphical only; requires Python 3, PyQt5/PySide2, and Git. Not suitable for headless servers. May conflict with custom Git configs.

INSTALLATION

Linux: sudo apt install git-cola (Debian/Ubuntu) or sudo dnf install git-cola (Fedora).
Universal: pip install --user git-cola.

KEYBOARD SHORTCUTS

Ctrl+Enter: Commit.
Ctrl+B: Branch manager.
Ctrl+Shift+D: Diff selected.
F1: Help menu.

HISTORY

Created by David Aguilar in 2007 as a Python/Qt Git frontend. Initially hosted on Google Code, now on GitHub with continuous releases. Reached v4.x by 2023, focusing on modern Qt support, dark themes, and performance improvements. Widely used in Linux distros via packages.

SEE ALSO

git(1), git-gui(1), gitk(1), tig(1)

Copied to clipboard