GitQuill

Cross-platform GUI for Git. Built with Monaco Editor and Electron.

142
1
Vue

GitQuill

Logo

Cross-platform GUI for Git.

Unique features

  • Edit files directly in the diff view.
  • Quickly amend past commits with the rebase tool.
  • Configure linking from commit messages to your issue tracker.
  • Configure buttons to execute any Git command with a click.

Requirements

Installation

npm install
npm run build
npm start

Notes

  • GitQuill has a custom mechanism for saving/restoring work-in-progress (WIP) using branches instead of traditional stashing; this is because Git’s stashing has technical quirks that make it difficult to integrate consistently into the UI.
  • If you start a rebase while having a file selected, GitQuill will revert the whole commit content in the index, while keeping it in the working tree, so that you can edit files without leaving the application.
  • When a conflict is detected, GitQuill automatically resets the unmerged files, in order to avoid the special repository state that makes things complicated to handle. Conflict markers are still left to be manually resolved.
  • GitQuill doesn’t watch repository files for changes. Status is refreshed when application receives focus or when you perform a relevant action in the UI.
  • GitQuill calls git commands directly. You can view all executed operations in the log files for each repository: .git/.quill/app.log.

Configuration

  • Per-repository configuration file: .git/.quill/config.json5. Example:

    {
        autolinks: [
            ['#(\\d+)', 'https://github.com/adamsol/GitQuill/issues/$1'],
        ],
        custom_actions: [
            { icon: 'mdi-download-outline', label: 'Pull', command: ['pull'] },
            { icon: 'mdi-upload-outline', label: 'Push', command: ['push'], click_twice: true },
        ],
    }
    
  • Global, automatic configuration file (open repositories, UI layout, etc): %AppData%/GitQuill/config.json for Windows; see https://electronjs.org/docs/api/app#appgetpathname for other platforms.

Contributing

Thank you for your interest in the project! I generally do not accept pull requests. The best way to contribute is to report a bug or suggest a feature via Issues.