假设您在master
,并且git checkout -B bugfix/user-profiles-nonexistent
。有没有办法现在发现你从master
分支出来,或者Git没有追踪到它?
答案 0 :(得分:6)
作为示例,请考虑此提交/分支图:
A--B--C--D-------------E--P
\ \
\ G--H--I---M--N--O
\ / /
F /
\ /
J--K--L
分支O
创建的分支是什么?其中一个包含F
的分支是在A-B-C
分支之外创建的,但它是包含G
还是包含J
的分支?也许F
仍然是一个独特的分支,G
和J
都是F
创建的分支。此外,包含G
和J
的两个分支稍后在M
再次合并在一起。还有其他一些模棱两可的“这个分支来自哪里”的情况。请记住,A-B-C-D-E-P
行的平坦度并不重要 - 图表可以使用相同的拓扑重绘,但以A-B-C-F-J-K-L-M-N-O
为直线;这将导致一组不同的“问题来自哪里”。
一般来说,你提出的问题是不负责任的,除了基于命名策略的约定,或者在提交消息中包含其他信息,或者某些东西......有些人可能会争辩说,对这个问题的任何答案都不是真的有用或有趣(我不确定我个人会走得那么远,不过我自己)......
答案 1 :(得分:4)
从技术上讲,分支不是从另一个分支创建的,它是从提交创建的,因此我不确定是否记录了您想要的信息。它似乎不在reflog中。
如果分支有上游集,您可以使用以下方法获取它:
git rev-parse --symbolic-full-name @{u}
但上游并不总是分支的上游,因为上游分支可以在创建分支时设置(--track
,也可以在branch.autosetupmerge
为真时自动设置)或者您可以稍后设置/更改它(使用--set-upstream-to
)。