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
710 views
in Technique[技术] by (71.8m points)

git - Which branch do commits from a deleted branch belong to?

If I merge branch A into branch B and then delete A, which branch do commits from branch A (now deleted) belong to?

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

Git branches are mere pointers to commits. Asking

Which branch does this commit belong to?

doesn't really make sense (at least, not in the general case) because commits may very well be reachable from multiple branches (or even from none at all!).

Consider the following example:

enter image description here

Commit F is currently only reachable from the bugfix branch; at this point, it makes sense to say that commit F "belongs" to the bugfix branch. However, if you then merge bugfix into master, by running

git checkout master
git merge bugfix

then commit F becomes reachable from both of those branches:

enter image description here

Commit F can no longer be said to belong to bugfix more than to master. If you then delete bugfix, commit F will again be reachable from only one branch, master this time, in which case it will make sense to say that commit F "belongs" to master.


In summary, a commit cannot, in general, be thought of as exclusively belonging to any one branch. However, a question that always does make sense is

From which branches (if any) is this commit reachable?


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

...