Best Windows Git Client Redux
It’s been over a year since I last wrote about Git tooling in the windows ecosystem including my opinion on the best Git client for Windows . Here are some new clients I’ve tried since the last post and what I think of them.
Last time I wrote about the GitHub client for Windows, I said I didn’t like it and that I found it bare of virtually any functionality at all. Since then, I read a post claiming that they (the creators of the program) wanted to make it the greatest client for Windows, so I thought I’d give it another shot when I had to set up a new computer. Nope! I still think it lacks much functionality either that or it’s all really well hidden from my eyes. It can seemingly do only the most basic operations, butthe time I want a graphical GUI the most is when I want to do something tricky without having to learn the correct commands myself. Uninstalled again.
Visual Studio Code
I’ve had the pleasure to do some development on some Node.js projects lately. I wrote a whole series on what the best Node.js development environment is for Windows , concluding that I found Visual Studio Code to have the best combination of features and speed for me. One of those features was the built-in Git support, which does most of what I want to be able to do on a daily basis: pull/push, checkout branches, view diffs and stage/commit. VSCode takes care of about 80% of my Git needs and I go to the command line for the rest.Notably absent is integrated support for merging.
I had thought that VSCode didn’t provide any integrated support for merging conflicts, but I just learned that isn’t true; VSCode supports merging by colorizing merge conflict markers. I’ll have to give that a try next time instead of using my configured mergetool from the command line!
Last time, I wrote that I never tried TortoiseGit because I read some negative comments about it. Well, I still haven’t tried it myself, but I can say that one of my co-workers does and I’ve never heard a complaint from him. Furthermore, one of the things that is often lacking from many Git GUIs a directory tree is implicit in the design of how TortoiseGit works! I’m making a mental note to give TortoiseGit another try sometime soon, because this is a must-have for me, personally.
I just found out about GitKraken recently and despite my aversion to dedicated Git GUIs, I installed and used it for a week as a test-drive.Thus far, I appreciate the default dark theme and I find the appearance appealing overall. Simple operations were simple as expected, and GitKraken does expose some handy more-advanced commands like branching from any arbitrary commit, stashing/popping, and rebasing, which are not present in VSCode but are present in Visual Studio Team Explorer.
However, it does have a few weaknesses as well that caused me some frustrations. It does not seem to work with the credentials cache, so I had to re-enter my credentials every day for the Visual Studio Online repo I was working on. In hindsight, I probably could have avoided this by connecting with SSH instead of HTTPS, but this is still annoying when my command line and IDEs all remember my credentials automatically. GitKraken comes with a built-in merge editor, but the free edition only lets you choose either-this-chunk-or-that; you need the paid edition to edit inline. (Or you can configure an external mergetool to enable this ability.) Lastly, a common affliction of many Git GUIs is that they focus on the commit graph while omitting the directory tree. I often want to review the history of a specific file, and I do not always knowof a commit that the file in question was modified in to start my search. What I want is to be able to navigate directly to a file and then view its commit history. If GitKraken can do this, it was not obvious.
In spite of these frustrations, I came away from GitKraken with a more positive impression than the one I had of SourceTree. To be fair, I got pretty mad at SourceTree when it couldn’t revert a merge commit which is what pushed me to learn the Git command line in the first place but I did not attempt to perform the same action with GitKraken. As a Windows .NET developer, if you’re already using Visual Studio Team Explorer, then in my opinion you don’t need GitKraken. If you’re using Visual Studio Code, you might want a supplemental Git GUI, in which case you should consider GitKraken alongside of the homelybut more full-featured GitExtensions, which does provide a directory tree view in addition to the commit tree.What I’m Using
When I’m in Visual Studio, that’s pretty much all I ever use or need to work with Git. When I’m developing Node applications, I tend to have a terminal open anyway, so whatever I can’t do in VSCode, I can do in the terminal I already had open anyway. I just don’t see the need or attraction to a dedicated Git GUI in these situations. However, I do often also have a file manager window open, and TortoiseGit would integrate with that… Maybe it’s time for me to pull the trigger and give that a try! What’s your favorite way to interact with Git on Windows?
本文系统（windows）相关术语:三级网络技术 计算机三级网络技术 网络技术基础 计算机网络技术