tl; dr: GitEye = интуитивно понятный интерфейс, быстрый рабочий процесс, широкие возможности настройки
Я долгое время работал в TortoiseHg Workbench poweruser, и мне это нравится, поэтому, естественно, мои полностью продуманные критерии были в основном основаны на нем:
* full history visible in main window
* beautiful tree (DAG), branches CLEARLY separated
* current branch clearly visible in history
* superclear list of changed/added files (list + diff detail)
* each changed/added file can be committed separately (or in groups)
* current branch clearly visible while committing
* clear push/pull etc buttons
* shelve = stash {not to be confused with patches}
* revert
* graft = cherry pick
* max git features
* HiDPI support
* all changes become visible on refresh
* refresh shortcut
Я протестировал следующие приложения:
- ГИТ-колы
- GitEye
- GITK
- ГИТ-гуй
- QGit
- хихикать
- салить
- SmartGit
- gitg
- RabbitVCS
- GitKraken
- GitX
- ГИТ-даг
- Базар Эксплорер + БЗР-ГИТ
- TortoiseHg + hggit (лучший интерфейс, hggit не работает)
Полученные результаты
Большинство протестированных клиентов git GUI полно ****, ниже приведены 2 из лучших и 1, что не так ****, как другие.
легенда
- = feature missing or so **** it doesn't count
~ = feature somewhat matches my requirements
+ = feature works like I want :)
1 место: GitEye
самый интуитивно понятный интерфейс, самый быстрый рабочий процесс, легко настраиваемый
~ full history visible in main window [in a separate tab, same UI pattern facilitates looking at the history of separate files]
+ beautiful tree (DAG), branches CLEARLY separated
+ current branch clearly visible in history
+ superclear list of changed/added files (list + diff detail)
+ each changed/added file can be committed separately
+ current branch clearly visible while committing
+ clear push/pull etc buttons
+ shelve = stash [Stashes clearly visible in sidepane]
+ revert
+ graft = cherry pick
+ max git features
~ HiDPI support
+ all changes become visible on refresh
- refresh shortcut [you can set one, but it wont work. bug?]
Примечание: если представление Git Files перестает работать на вас, используйте аналогичное представление Git Staging.
2 место: SmartGit
красивый интегрированный файл diff. неясно, история скрыта, требуется лицензия
~ full history visible in main window [separate window, I found myself constantly confusing both windows]
- beautiful tree (DAG), branches CLEARLY separated
- current branch clearly visible in history
+ superclear list of changed/added files (list + diff detail)
~ each changed/added file can be committed separately [UI not clear enough]
- current branch clearly visible while committing
+ clear push/pull etc buttons
+ shelve = stash
+ revert
+ graft = cherry pick
+ max git features
+ HiDPI support
+ all changes become visible on refresh [refreshes automatically]
+ refresh shortcut [refreshes automatically]
3 место: QGit
красивая чистая история, коммит UX грязный, легкий, пользовательские команды могут быть добавлены
+ full history visible in main window
+ beautiful tree (DAG), branches CLEARLY separated
+ current branch clearly visible in history
~ superclear list of changed/added files (list + diff detail) [doesn't show new files in main window]
- each changed/added file can be committed separately
- current branch clearly visible while committing
~ clear push/pull etc buttons [could be added via custom commands]
- shelve = stash
- revert
- graft = cherry pick
- max git features
+ HiDPI support
~ all changes become visible on refresh [except for new files]
+ refresh shortcut
Похвальная грамота: GitKraken
Он все еще находится в стадии разработки (в 1.5.1 по-прежнему отсутствует поддержка HiDPI), но он выполняет основную работу. Это может легко конкурировать с GitEye и SmartGit. Это лучше, чем QGit точно.
Все остальные:
Я разочарован типом ****, сделанным, чтобы пройти как клиент git. Я предполагаю, что их авторы считают, что более эффективно делать повседневные простые вещи из командной строки, и они основывают своих клиентов на этом неэффективном рабочем процессе.
git mergetool
. Я предпочитаю смешанный графический интерфейс в качестве mergetool.