tl; dr: GitEye = interface de usuário mais intuitiva, fluxo de trabalho mais rápido, altamente personalizável
Há muito tempo que uso o TortoiseHg Workbench poweruser e adoro isso, então, naturalmente, meus critérios completamente opinativos se baseavam principalmente nele:
* 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
Eu testei os seguintes aplicativos:
- git-cola
- GitEye
- GITK
- git-gui
- QGit
- rir
- tig
- SmartGit
- gitg
- RabbitVCS
- GitKraken
- GitX
- git-dag
- Bazaar Explorer + bzr-git
- TortoiseHg + hggit (melhor interface do usuário, o hggit não funciona)
Resultados
A maioria dos clientes GUI testados do git são completos ****, abaixo estão 2 dos melhores e 1 que não é tão **** quanto os outros.
lenda
- = feature missing or so **** it doesn't count
~ = feature somewhat matches my requirements
+ = feature works like I want :)
1º lugar: GitEye
interface de usuário mais intuitiva, o fluxo de trabalho mais rápido, altamente personalizável
~ 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?]
Nota: se a visualização Arquivos Git parar de funcionar com você, use a visualização Git Staging semelhante.
2º lugar: SmartGit
belo arquivo integrado diff. cometer obscuro, histórico oculto, requer uma licença
~ 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º lugar: QGit
belo histórico claro, confirme comandos UX confusos, leves e personalizados
+ 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
Menção honrosa: GitKraken
Ele ainda está em fase de desenvolvimento (a versão 1.5.1 ainda não possui suporte ao HiDPI), mas faz o trabalho básico. Isso poderia competir facilmente com o GitEye e o SmartGit. É melhor que o QGit, com certeza.
Todo o resto:
Estou decepcionado com o tipo de merda feita para passar como cliente git. Eu acho que seus autores acham que é mais eficiente fazer coisas simples todos os dias na linha de comando e eles basearam seus clientes nesse fluxo de trabalho ineficiente.
git mergetool
. Eu prefiro a GUI de fusão como a ferramenta de fusão.