Git is the king for a reason
September 12, 2018

Git is the king for a reason

Matthew Mariner | TrustRadius Reviewer
Score 10 out of 10
Vetted Review
Verified User
Review Source

Overall Satisfaction with Git

Git is being used by our organization on an information technology department level. We use Git as our sole Version Control system for all of our software releases, maintenance & deployment.
  • Git is designed to work in a distributed manner, allowing each developer to run a local node that has full control of the project. Through this, the developer is able to merge his work with others on a main 'branch' & work in sync without having to worry about stepping on your other developers toes.
  • Because Git has solved the software problem of dependency, users who commit code that needs to be deleted can just roll back to a restore point, saving precious development time & tons of headaches for Information Technology. This is also very helpful when cloning projects or creating new features on the current project.
  • Git has a beautiful command line interface that is intuitive, easy to learn & extensible. You can also observe all the changes you have made in your project throughout the development with just a few simple commands. This diverse set of command-line tools is easy for the end user & very powerful.
  • There is currently no way to avoid downloading the entire commit history of a repository into the local copy - this can be problematic when cloning projects that have a history of many working submodules & packages.
  • Advanced configurations (managing multiple branches, having commands that take 2+ arguments) can sometimes be overwhelming for inexperienced users & there is definitely a learning slope for new developers.
  • You have to be precise when you use your git commands. The nature of Git commands are powerful. So powerful that if you don't know what you are doing and accidentally type a wrong command, you can cause irrevocable damage to your repository & others.
  • Git has allowed us to have a positive impact on our software development processes by helping us avoid allocating precious development resources to tedious tasks such as manual version control. We have been able to avoid problems before they happen & fix them if necessary.
I've used both Apache Subversion & Git over the years and have maintained my allegiance to Git. Git is not objectively better than Subversion. It's different.
The key difference is that it is decentralized. With Subversion, you have a problem here: The SVN Repository may be in a location you can't reach (behind a VPN, intranet - etc), you cannot commit. If you want to make a copy of your code, you have to literally copy/paste it. With Git, you do not have this problem. Your local copy is a repository, and you can commit to it and get all benefits of source control. When you regain connectivity to the main repository, you can commit against it. Another thing for consideration is that Git tracks content rather than files. Branches are lightweight and merging is easy, and I mean really easy.
It's distributed, basically every repository is a branch. It's much easier to develop concurrently and collaboratively than with Subversion, in my opinion. It also makes offline development possible. It doesn't impose any workflow, as seen on the above linked website, there are many workflows possible with Git. A Subversion-style workflow is easily mimicked.
Git is a great tool, in fact, possibly the best tool to use when keeping track of all the projects through version control. Through its rigorous program, it allows the end user to see how code behaves before being merged into the main branch, and allows the intelligent user to avoid problems & fix them if necessary. It is easy to learn the common verbiage (clone, add, commit, pull & push) but at the same time have all advanced features that you can need in a future (merge, cherry pick, diffs ...) It is faster than other version control solutions currently on the market, & because it's open source it's just the best go-to for Version Control Software.