I'm looking for a good tool to help me when making git commits. (Maybe viewing history as well)
Specifically, I want something that allows me to, using a gui:
Very easily add files, do patch-add, hunk editing, patch-checkouts, etc. I do this constantly, making it easy would be a great help. I don't want that feature to be secondary. I almost wish I could simultaneously group multiple uncommitted changes into different "pre-commits" that I could later decide the order on too, but I doubt anything supports that. It's a little tiring to do it all via CLI.
Automatically warn about >50 character commit messages, force limit to 80 character length lines in messages, maybe wrap at 72 for indentation (Or a custom setting, but those defaults are fine) and ensure capitalization on first word, no period at end, etc. Heck, if it can warn about imperative mood that'd be great too. (Though I suspect that's much harder) I don't make these mistakes often, but I want something to catch them if I do.
If possible, view history. I use Gitk for this, and rolling this all into one tool would be nice. Plus, Gitk is a little lacking visually.
I'd also like the following properties:
- Easy to install and set up.
- Should work with existing, private repositories that are self-hosted (IE, doesn't require some tie to Github/etc) This eliminates Git Kracken unfortunately.
For reference, my current workflow is:
- Make large lump of changes
- Go into command line, decide which of the groups of changes I want to commit first, and begin going through each file and do
git commit add -p [filename], add all the relevant changes, edit or split hunks when necessary.
- Once all files are done for this commit, go into QTCreator, use the Tools->Git->Local Repository->Commit, write the message since it automatically line-breaks at 80 characters so I can't make a mistake.
- Go back into CLI and push if I'm going to
- Get the do
git logto get the commit messages I made for other uses.
One tool to handle let me do all of that instead of a mixture of Gitk, command line and QTCreator would be amazing.