When comparing Git BASH vs Git for Windows, the Slant community recommends Git for Windows for most people. In the question“What are the best collections of Unix libraries for Windows?” Git for Windows is ranked 5th while Git BASH is ranked 7th. The most important reason people chose Git for Windows is:
By using the CLI, one is given access to every single git function available, thus providing complete flexibility in managing git.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Gives a better overview of how git functions
By using the git from the command line, it's possible to learn how it functions and how best to acquire the desired result.
Pro One of the most powerful ways to use git
Using CLI gives access to every single git function available, thus providing complete flexibility in managing git.
Pro Great community support
Since most devs invoke git via CLI, there's a higher chance of getting an answer to a CLI-based git problem than that which is GUI-based.
Pro Provides a Bash on Windows
complete with less, vim, etc.
Pro Comes with a very useable but partially incomplete git bash.
e.g. find xargs grep ls sort awk sed, du, df etc. are all well implemented
Pro Supports multiple platforms
Git CLI works exactly the same as it does on Windows, Linux, or Mac OS X: the user will always have the option to run the Git via command-line with the same arguments.
Pro Visual representation of commit-history is possible
Even a visual representation of various branches and how they're merged is possible.
To visualize history:
git log --graph
Pro Cross platform GUI tools
- git citool
- gitk
- git gui blame
Pro The most powerful way to use git
By using the CLI, one is given access to every single git function available, thus providing complete flexibility in managing git.
Pro Offers three kinds of interfaces
Git for Windows includes a command-line interface in the form of Git BASH, a graphical interface in the form of Git GUI and a context menu interface.
Git BASH offers the complete power of git, Git GUI aims to cover all git functionality (though it falls a bit short) in a graphical way and the context menu enables quick access to simple commands.
Pro Great community support
Since most devs invoke git via CLI, there's a higher chance of getting an answer to a CLI-based git problem than that which is GUI-based.
Pro Can generate an RSA key pair
It's possible to generate an RSA key pair using Git BASH. Instructions on how to do so can be found here.
Pro Gives a better overview of how git functions
By using the git from the command line, it's possible to learn how it functions and how best to get the desired result.
Pro Visual representation of commit-history is possible
Even a visual representation of various branches and how they're merged is possible.
To visualize history:
git log --graph
Cons
Con Steeper learning curve as compared to a GUI solution
As the user must learn the CLI commands, this makes it a slightly harder than using a GUI tool.
Con Difficult to overview complex project histories
While the you can run git log --graph --all
to display all the version history of the project with the same details as a GUI client would, it can still be a bit hard to make out. Since the GUI can use true shapes like lines and dots, the command line has to use pipes and slashes.
Con Recalling is more difficult than recognizing
Although there's autocompletion for commands, it still requires recalling at least the beginning of a command, whereas all that's required when using a GUI is recognizing the desired outcome.
Con Terrible UI
Although it does most of what needs to be done, the actions are not obvious. It is definitely not user-friendly.