For the first time, after many years of programming here and there with no real project experience, I took on a project to develop the back end system of a new platform for a company. For the first time, I’ve had to work with a front-end developer. Because of this, I’ve decided to document everything I learn. I had to learn how to collaborate on Git so I did some research and ended up with the following workflow.
The following pieces of code require that you have initialized a Git repository or cloned one. If you haven’t, please read a beginner’s tutorial on doing so (this one, or this easy one).
Creating Branches
To collaborate with Git on new features, branches are necessary. By default, the branch ‘Master’ is created with every initial Git repository. The branch ‘Master’ should be the only one in sync with the production server. We need to create another branch to build, fix and test features and bugs. We will call this branch ‘Dev’ (Develop).
- Checkout to the Master branch
git checkout master
- Create a new branch based on the Master branch
git checkout -b dev master
- Switch to the Dev branch
git checkout dev
- Create a feature, bug or anything on top of the Dev branch
git checkout -b bug1 dev
The most commonly used command after this would be the creation of new branches:
git checkout -b bug1 dev
bug1
is the new sub-branch and dev
is the main branch. The included -b
flag will create the new branch and switch to it automatically so that you can start creating things immediately.
And switching branches:git checkout bug1
Merging Branches
After you are satisfied with what you have created, or a bug has been fixed, you will need to merge it to the Dev branch:
Change back to the Dev branchgit checkout dev
Merge the feature or bug branch with Devgit merge bug1
Now if we want to merge the Dev branch with Master, we first need to go to the Master branch:git checkout master
Then merge Dev. Be cautious of the --no-ff
flag!git merge --no-ff dev
--no-ff
means merge with no fast forward. What that means is that it will create a commit node which keeps track of who performed each merge.
You can delete a merged local branch with:
git branch -d branchname
If it’s not merged, use:
git branch -D branchname