How to Download multiple Youtube Videos using Nodejs and Show a Progress Bar
Introduction I was trying to download some youtube videos for my kids. As I have…
July 13, 2020
In this guide, We will learn about branching, handling conflict resolution during merge.
I hope you have seen previous git training posts:
We should never work directly in master branch. For any feature work, we should create a new branch based on master (or whatever is your stable or active dev branch). And, should merge back to master or active branch when the feature is complete.
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
It lists down all local and remote branches, and put an asterisk *
with the active branch.
To create a new branch, use git branch <branch name>
$ git branch feature_branch
# lists branches
$ git branch -a
feature_branch
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
We have created a new branch, but not yet switched to that. To switch to another branch use git checkout <branch name>
$ git checkout feature_branch
Switched to branch 'feature_branch'
$ git branch -a
* feature_branch
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
To rename an existing branch:
$ git branch -m feature_branch fb_branch
$ git branch -a
fb_branch
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
To delete branch, first checkout to another branch. Then,
$ git branch -d ff
Deleted branch ff (was fc7c680).
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
It will delete the branch without any warning.
$ git checkout -b feature
Switched to a new branch 'feature'
$ git branch -a
* feature
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
First switch to your main branch by git checkout
. Have a look at the differences by git diff
.
To see the diff between branches:
git diff master feature_branch
If everything looks good. Lets merge it.
$ git merge feature_branch
Updating fc7c680..d8fa86a
Fast-forward
test.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 test.txt
Console shows that it was a Fast Forwarded
merge. When you do a fast-forward merge, All the commits in your source branch becomes part of your target or active branch. And there will be no trace of the branch from where you merged the code.
To disable Fast-Forward commiit
git merge feature_branch --no-ff
This will open up an editor to put a message. Now, we will have the trace of branch in log history, Even after deleting the branch.
$ git log --oneline --graph --decorate --all
* a0a3150 (HEAD -> master) Merge branch 'bugfix'
|\
| * fcf0a1f bug desc
|/
* e4b09ba adding another file
* d8fa86a Adding another feature
* fc7c680 (origin/master, origin/HEAD) another commit
* 1170bc1 Update test2.txt
* e7dd2a0 t2
* 007675f t1
* 1a2af9c test
* f997108 test
* 9a5a776 test
* 85587c6 test1
* 574c251 test 1
Now when we have merged the developed code into our main branch. We can safely delete the branch.
git branch -d feature
Example, you created a branch and did some changes. Now, you want to merge your branch in master branch. But, someone else has done some changes in Master branch as well.
In this case, to perform an automatic merge:
git merge <branch_name> -m "message"
In the git log
command, you will see both commits.
In scenarios, when changes are complex. And, merge can not happen automatically. There can be conflicts in some files.
When you try to do the merge, it shows error stating name of each file that is causing conflicts. Now, you can open the file in an editor and manually resolve the conflicts.
Or, if you have configured a visually diff tool like p4 merge tool
, you can do this visually as well.
Once you resolve your conflicts, just do a git commit -m "message"
Introduction I was trying to download some youtube videos for my kids. As I have…
Assuming you have a java project and is using Visual Studio Code as IDE. All of…
Introduction Drupal is an awesome CMS. Drupal content type form, allows you to…
While doing code review of one of junior, I encountered following code: What…
Introduction In this tutorial we will see: How to instantiate different classes…
Introduction to Problem I have some data related to users. For example: which…
Introduction This post has the complete code to send email through smtp server…
Introduction In a normal email sending code from python, I’m getting following…
Introduction In one of my app, I was using to talk to . I have used some event…
Introduction So you have a Django project, and want to run it using docker image…
Introduction It is very important to introduce few process so that your code and…
Introduction In this post, we will see a sample Jenkin Pipeline Groovy script…