6

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

jub0bs
  • 60,866
  • 25
  • 183
  • 186
Maladec VampaYa
  • 351
  • 3
  • 21
  • It helps to remember that a "branch" in git is just a pointer to a commit. All the commits "on the branch" are ones that are reachable from that commit. – Captain Man Jan 14 '16 at 14:53

1 Answers1

13

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?

jub0bs
  • 60,866
  • 25
  • 183
  • 186