Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/adamsol/gitquill

Cross-platform GUI for Git. Built with Monaco Editor and Electron.
https://github.com/adamsol/gitquill

client diff electron git graph gui monaco-editor

Last synced: 3 days ago
JSON representation

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

Awesome Lists containing this project

README

        


GitQuill


Logo

Cross-platform GUI for Git.


| ![](img/screenshots/commit-history.png) | ![](img/screenshots/file-diff.png) |
|-----------------------------------------|------------------------------------|

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
------------

* [Git](https://git-scm.com/) 2.23+
* [Node.js](https://nodejs.org/) 18+

Installation
-----------

```sh
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:

```js
{
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](https://github.com/adamsol/GitQuill/issues).