When comparing Git BASH vs Cygwin, the Slant community recommends Cygwin for most people. In the question“What are the best collections of Unix libraries for Windows?” Cygwin is ranked 2nd while Git BASH is ranked 7th.
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 Additional packages available via Cygwin Ports project
Pro Better default terminal
Cygwin's default terminal "Mintty" is far better than CMD.
Pro You can run graphical applications
It has X Server.
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 Many incompatibilities
A lot of tools don't actually work with Cygwin, and documentation is often sparse, so for many use cases, it's worth the small bit of extra effort to just run a full virtual machine.