Overall Satisfaction with Git
Pros
- Branching
- What I find as the main benefit of Git is the ease that branches can be created in a repository - whether that's for working on new features or to fix bugs. It's as easy as selecting the code you want to branch from and "git checkout -b newBranch". Mainly I use this for branching from our development branch (also known as trunk) and once the code is finished, we merge the branch back into the development branch. Switching branches in Subversion is a little bit more complex, whereas Git is super easy to use.
- Pull Requests
- Pull requests can be created on a repository allowing code to be reviewed before being merged to the main branch. External tools like Bitbucket can be used to integrate into the Git repositories, allowing users to easily review and comment on your pull requests.
- Local Repositories
- When you use Git, you checkout the repository to your machine locally - and any commits that you make only affect your local repository, rather than the "real" repository at a remote location. This allows you to commit often and finalize all of your code before merging onto the latest development branch.
Cons
- Understanding
- Git has a little bit more of a learning curve when compared to other source control solutions, e.g. Subversion - but this is due to the more complex features it offers.
- IDE Support
- There aren't as many plugins for Git when compared to other source control solutions. Subversion has better plugins for IDEs and seems to be well supported.
- Git Bash
- Using Git bash, or the GUI that comes with Git can be slightly daunting at first. Tools like SourceTree are a solution to this problem, as they run the underlying Git commands for you.
- The ease of use is a big positive with Git. With additional tools like SourceTree and a Bitbucket server, it's really easy for an engineer to get to grips with. Repositories can be easily creating/administered using Bitbucket, and the repositories can be cloned using SourceTree in a few clicks.
Comments
Please log in to join the conversation