それぞれいいところがあって絞りきれないので使い分けてます。
Git Bash (Git for Windowsについてくるやつ)
コマンドラインツールとして過不足ないのでそのまま使用。
他のGUIがサポートしてない機能や、オプションを厳密に指定したい時などに使う。
git rebase -iなど。
Git Gui (Git for Windowsについてくるやつ)
直前のコミットの修正(git commit --amend)に便利。
直前のコミットのメッセージと、コミットしたファイルが全て見える。
(他のツールでは前のコミットのファイルが見えないことが多い)
TortoiseGit
ブランチごとの関係を見るのにRevision Graphがとても見やすい。
個人開発では使っていないが、チーム開発時のコンフリクト修正時の確認や、
放置されていたり、リベース無しで長期開発してるブランチの発見などにも使用。
※画像はTortoiseGitの公式ページより
Sourcetree
コミット時、行単位/hunk(コードブロック)単位で制御できるので便利(git add -p {path})。
うっかり空白行やデバッグ用コードをコミットしそうになった時など、エディタに戻らず修正できる。
追記:JetBrainsのIDEで可能になったため使わなくなりました。
ブランチ移動やcheckoutも簡単。
JetBrains系IDEのgit機能
・ファイルの行単位の変更確認
バグの原因箇所を特定した時などに、何時から発生し、類似バグはあるか、どう修正するべきか、という調査に使用。
・ファイル単位の変更確認(git log -p {path} と git diff {path})
上に同じ。
・ディレクトリ単位の変更履歴確認(git log -p {path})
あまり詳しくない機能を触る時、過去に変更を入れた詳しそうな人をリストアップに使用。
最後に
常時全てを立ち上げてるわけではなく、ガッツリ使いたい時以外は他のツールで済ませることも多いです。
が、人に薦めるにはこの数は厳しいのでもう少し絞り込みたいところ。
他におすすめあれば教えていただけると幸いです。