Thursday 8 August 2019

5 STEPS TO MERGE A GIT BRANCH

If you are working in development for a long time, you should know what version control system and a GIT is. In this post, we will see what a GIT branch is and how to merge a branch to other branch or a master in git repository.

WHAT IS A GIT BRANCH?

GIT store all the files and data in a repository. This repository is a centralized location where we store all data by versioning controlling them. A branch is nothing but a complete replica of a repository which effectively forks within your repository. At the time of new branch creation, the branch is similar to the repository main branch(many times it will be a master branch) or from which branch it is forked.
Once the branch is created we can start working on a new branch with out modifying master branch content this way any bugs we introduce is with in your working branch. In this post, we will see how to merge a branch to a master branch after we are confident about the changes.
In this post, we will use two branches
first_branch: This is actual changes which we do and need to merge these changes to another branch.
second_branch: This is the branch where we merge our first_branch changes.

STEPS TO MERGE A GIT BRANCH TO MASTER

STEP1: CHECK OUT TO AN EXISTING BRANCH

First, check what branches are available to you.
git branch
Example:
surendra@linuxnix:~/code/sh/gittraining$ git branch
first_branch
second_branch
* master
From the above output, the * with a name indicates your present branch. So the current branch is a master.
Checkout into first_branch branch.
git checkout branchname
Example:
surendra@linuxnix:~/code/sh/gittraining$ git checkout first_branch
Switched to branch 'first_branch'
surendra@linuxnix:~/code/sh/gittraining$ git branch
* first_branch
second_branch
master

STEP2: COMMIT AND PUSH CHANGES TO A BRANCH

Update your files and commit those changes locally and then push those changes to sync remote repository.
git commit -am “First commit.”
git push
Example:
Check if any changes already exists or not
surendra@linuxnix:~/code/sh/gittraining$ git status
On branch first_branch
Your branch is up-to-date with 'origin/first_branch'.
nothing to commit, working directory clean
Edit your files and check status.
surendra@linuxnix:~/code/sh/gittraining$ vi abc.sh
surendra@linuxnix:~/code/sh/gittraining$ git status
On branch first_branch
Your branch is up-to-date with ‘origin/first_branch’.
Changes are not staged for commit:
(use “git add <file>…” to update what will be committed)
(use “git checkout — <file>…” to discard changes in working directory)
modified: abc.sh
no changes added to commit (use “git add” and/or “git commit -a”)
Commit changes
surendra@linuxnix:~/code/sh/gittraining$ git commit -am “Updated abc.sh script”
[first_branch f564909] Updated abc.sh script
1 file changed, 1 insertion(+)
surendra@linuxnix:~/code/sh/gittraining$ git push
Username for ‘https://github.com: linuxnix
Password for ‘https://linuxnix@github.com
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 342 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To https://github.com/linuxnix/gittraining.git
e4a48b6..f564909 first_branch -> first_branch

STEP3: CHECKOUT TO THE DESIRED BRANCH

Example:
surendra@linuxnix:~/code/sh/gittraining$ git checkout second_branch
Switched to branch 'second_branch'

STEP4: PULL CHANGES TO LOCAL DIRECTORY

surendra@linuxnix:~/code/sh/gittraining$ git pull
Already up-to-date.

STEP5: MERGE CHANGES TO PRESENT BRANCH.

It is a syncing your first branch data with your second branch.
git merge desired_branch_to_merge
Example:
surendra@linuxnix:~/code/sh/gittraining$ git merge first_branch
Updating 075ca41..f564909
Fast-forward
abc.sh | 2 ++
1 file changed, 2 insertions(+)
Check status if the local changes are synced to remote branch or not.
surendra@linuxnix:~/code/sh/gittraining$ git status
On branch second_branch
Your branch is ahead of 'origin/second_branch' by 2 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
If remote second_branch and local second_branch are not synced, sync them by using git push command.
surendra@linuxnix:~/code/sh/gittraining$ git push
Username for 'https://github.com': linuxnix
Password for 'https://linuxnix@github.com': 
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/linuxnix/gittraining.git
 075ca41..f564909 second_branch -> second_branch
Hope this helps in understanding How to merge branches. In our next post, we will see how to delete a git branch locally and remotely.

0 comments:

Post a Comment