Git: our source code tool
2 min readMar 2, 2017
At roomdi, we build a lot of software. All the code of our APIs, web, data processes, and so on is stored in several bitbucket repositories.
Some of us worked previously with svn or mercurial. Git collect the main version control features that we need to use:
- Branches. Each one of our projects are born in a new branch. When the code is tested in pre-production environment, it is ready to be merged on production branch. You can learn using it with this interactive site.
- We neeed to commit and to follow code evolution history.
- Tags. This feature is very useful for our team as we can use a name to reference a concrete change. We usually use tags like 20170101_happy_new_year_feature. When we deploy this tag, it will deploy the commit referenced by the tag. If we need to un-deploy it, we only need to look for the previous tag and deploy it instead.
There are some special features that makes git a bit different from other version control tools:
- git staging area. This is one of the essential concepts that you should learn when you start using git. This functionality works as a place between the local changes and the repository where developer can put only those changes he want to commit. You can read more about staging here.
- amend:rewrite history. This commit option will allow you to combine staged changes with previous commits instead of create a new commit for the staged change. If you want to learn more, read this atlassian tutorial.
- git squash:it let you to merge commits.
- cherry picking. Used when we need to get a single existing commit and apply it in other branch.
And David (our git master) explained us these and a lot of more git kindness in our last tech+pizzas friday