In this article I am going to show you how to play with branches and merges.
As shown in previous article, I was working on the master branch. GitHub gives you the flexibility to create branches and allows you to cherry pick your changes to be merged back to your main branch. So lets make a new branch:
On your repository, you will see a pull down button showing you the current branch as master. Click on it and type name for your new branch. I called this Feature1. Click on the blue bar that says ‘Create branch: Feature1’.
Clicking this will create a new branch Feature1 from master. You will see all your files in your branch (I know i have one file only :)). Clicking on the same button should show a tick mark against ‘Feature1’, which means you are now in Feature1 branch.
Clone branch locally
What i am doing here is that the Feature1 branch code is being cloned into a new folder called TestRepoFeature1.
C:\work\amar\Code\TestRepo [master =]> git clone https://github.com/amarsingh19/ TestRepo.git -b Feature1 ../TestRepoFeature1 Cloning into '../TestRepoFeature1'... remote: Counting objects: 6, done. remote: Compressing objects: 100% (2/2), done. remote: Total 6 (delta 0), reused 6 (delta 0), pack-reused 0 Unpacking objects: 100% (6/6), done. C:\work\amar\Code\TestRepo [master =]> cd.. C:\work\amar\Code> cd TestRepoFeature1 C:\work\amar\Code\TestRepoFeature1 [Feature1 =]>
Now I am going to make some changes to FirstFile.txt such that it looks like this:
This is first file. Version 3 Branch: Feature1
Next lets do commit and push the changes.
git add FirstFile.txt git commit -m "Feature1 first commit..." git push -u origin Feature1
and voila! If you check your repository on GitHub Feature1 branch should get updated with your changes.
Merge Feature1 changes to master
To initiate the merge, you will have to submit a New pull request to the owner of the original repository. Pull request is something like you’re requesting the owner of the repository to review your changes and merge into the main branch. You can do so by clicking on the button highlighted:
Since I am the owner of the original repository, I see below screen
Click on the ‘Merge pull request’ button:
Click on the ‘Confirm merge’ button. At this stage you can delete this Feature1 branch.
Now lets check what happens to the main branch. Open FirstFile.txt and notice the contents have been merged from Feature1 branch.
This completes one complete workflow of creating a repository, branching and merging the changes back to the main branch. I hope I was able to provide good information here.