Git“漏”分支?

时间:2012-12-24 14:59:20

标签: git version-control git-branch branching-and-merging git-merge

我们通常在新分支上进行功能开发,然后在主分支上进行错误修正。这一次,由于某种原因,其中一个功能分支有一个泄漏,当它不应该合并回到主服务器时。

从屏幕截图中,您可以看到我们有功能分支sms_open和121217. 121217应该在我们的sprint之后合并到master中然后sms_open分支有更长的时间估计所以它需要被推回到未来发布。我无法弄清楚为什么sms_open commit 609129d被重新合并。我看到不需要的合并发生在75e845b,但是这样做的开发人员否认sms_open正被合并回来。有没有办法以任何方式验证这一点?

仅供参考,这里使用的git工具是适用于Mac OS的SourceTree。

source tree screenshot

2 个答案:

答案 0 :(得分:5)

121217开始追踪绿线时,您可以看到它已连接到sms_open。这意味着121217的历史记录基于sms_open(它是其父提交之一)。

所以无论是谁121217分支都基于sms_open而不是master(可能是错误的)。这可能是提交e70759c

的作者

当在Git中合并分支时,从分支到合并的所有提交(它们还不是要合并的分支的一部分)将是结果的一部分。这就是sms_open的提交也被合并的原因。

答案 1 :(得分:0)

截图中有些东西可疑。合并到时,“合并分支'xxx'”等消息是默认消息。

有提交c8cb6,暗示蓝线是主线。 但是有75e8意味着黄线是主线。 不幸的是,其他消息是匿名的,因此无助于理解正在发生的事情。提交者来自哪个开发人员尤为重要。 - 对我来说,就像有人在硕士上工作并稍后重命名为该分支。 (但我没有足够的细节说明。)

如果历史没有意义,可能会涉及快进合并或强制推送,尤其是ff-merge意味着它只是没有记录在历史记录中。

如果你有权访问你的官方git存储库,那里的reflog可能会给你一个推送什么和何时推送的提示。