Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
788 views
in Technique[技术] by (71.8m points)

git - What is the difference between merging master into branch and merging branch into master?

I have a branch called master and another called dev. Usually, I do tests and improvements on dev; when done, I merge it into master, tag it, and release new version of the application.

Now, I face a decision to make in regard to merging:

  1. merge master into dev
  2. merge dev into master

but I am not really sure how the two are different... Any explanation would be welcome.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

TL;DR

The main difference lies in where the master and dev branches end up pointing. enter image description here

Full explanation

Merging one branch into another is not a symmetric operation:

  • merging dev into master, and
  • merging master into dev,

are, in general, not equivalent. Here is an illustrative example that explains the difference between the two. Let's assume your repo looks as follows:

enter image description here

If you merge dev into master

If master is checked out (git checkout master),

enter image description here

and you then merge dev (git merge dev), you will end up in the following situation:

enter image description here

The master branch now points to the new merge commit (F), whereas dev still points to the same commit (E) as it did before the merge.

If you merge master into dev

If, on the other hand, dev is checked out (git checkout dev),

enter image description here

and you then merge master (git merge master), you will end up in the following situation:

enter image description here

The dev branch now points to the new merge commit (F', whereas master still points to the same commit as it did before the merge (D).

Putting it all together

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...