我想使用 Eclipse 的 JGit 库找到特定分支的第一个提交。例如,如果我有
master -- a -- c -- d -- e
\
feature b -- f -- g -- h
\
another j -- k -- l
// findBranchRoot() is the magic method we want to create
repository.resolve("feature").findBranchRoot().getId(); // this would return b
repository.resolve("another").findBranchRoot().getId(); // this would return j
有谁知道这是怎么做到的吗?
你将遇到的问题是——请耐心听我说——提交不是“在”分支上的。要了解这一点,请考虑您绘制的图表。这是模棱两可的。难免如此。你画了
A---C---D---E master
\
B---F---G---H feature
\
J---k---L another
并且根本没有办法确定是否B
被“上”feature
or another
(或者,就此而言,这三个中的哪一个A
被设置为“on”)。
A---C---D---E master
\
B---J---K---L another
\
F---G---H feature
shows exactly相同的历史。这完全取决于您选择如何解释它。
如果你想将提交绑定到某些外部管理记录,请在提交消息中放置一个标记,这样就可以了,但在 Git 本身(以及实际工作)中,重要的是历史结构,而不是它的具体内容。在此存储库或该存储库中引用。
如果到了发布的时间feature
or another
,你需要推送提交B
不管怎样,除非它已经作为其他工作的一部分被推动。血统很重要。分支名称则不然。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)