【发布时间】:2017-09-01 01:35:46
【问题描述】:
在工作中,我们开始注意到一些奇怪的 git 行为,我无法解释。有人会进行提交,然后(通常在合并之后),提交中的某些代码行将被撤消。这不是整个提交,并且可能只影响文件的一部分。它似乎也发生在正常成功合并之后(即没有解决不好的冲突)。
有时这很明显,例如当文件的一部分发生更改时,有时它可能更微妙。这看起来不是故意的,受影响的人似乎也没有使用 rebase、commit amend、revert 等可以提供简单解释的东西。自然而然,消失的代码总是在较新的提交中未修改的旧代码。
在无冲突合并期间,是否有任何其他方式可以让 git 覆盖以前提交的部分内容?
【问题讨论】:
-
您是否浏览过 git 日志以了解这些行是如何以及何时消失的?您可以在注意到文本消失的地方发布两个父提交和合并提交吗?
-
在其中一个缺失的行中找到一个相对独特的示例,并使用
git log -Gphrase列出添加或删除包含该短语的行的所有提交的列表。应该为您缩小搜索范围 -
其实,为了澄清问题,是代码在合并提交中消失了,但保留在原始提交中,还是您看到代码从原始提交中消失?
-
@LightBender 原始提交没问题,只是合并提交受到影响。