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:
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:
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?
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…