【发布时间】:2018-03-07 16:10:35
【问题描述】:
我们遇到过这样的情况,开发人员进行了一次提交,更改了两个文件(在提交中显示),但实际上更多的文件被更改了。 IE。我们可以查看上一个提交中的文件,查看一些内容,然后查看有问题的提交中的同一个文件并且该文件不同(缺少内容),但该文件没有显示为更改了违规提交。这怎么可能?
我们假设违规提交的开发人员在推送之前没有拉动并向上推送旧版本,但我希望看到所有意外更改的文件以及所需的更改。由于我没有看到这些变化,我想知道是否发生了其他事情。
这是我们所看到的(仅针对一个有更改但未提交的文件)
- 提交 x(违规)
- 提交中更改了 2 个文件
- 文件 Y 没有 Z 行
- 文件 Y 在提交中未显示为更改的文件
- 提交 y(上一个)
- 文件 Y 确实有 Z 行
- 文件 Y 多次提交前更改
- 提交 A(5 天并且可能在 y 之前提交)
- 文件 Y 添加第 Z 行
- 文件 Y 已提交
更新
我正在查看 GitHub 中的提交历史记录。单击提交,它显示文件已更改。在违规提交中,列出了两个文件。但是,再次在 GitHub 中,如果您比较有问题的提交和之前的提交(查看提交时的浏览文件按钮)之间的问题文件,则会更改有问题的提交中列出的文件未。
我检查了父母(在 GitHub 中),它表明我期望作为父母的两个提交是父母。然而,我也开始怀疑,如果我跟着父母走得够远,我们就会遇到问题。我最终使用 SourceTree 来查看树枝......哇......看起来就像地震后的洛杉矶免费系统。
明显的原因是违规提交基于开发分支中的一个非常旧的提交,正如 Mark Adelsberger 所建议的那样。我没有确认,但很确定提交者在谷歌上搜索到足以使用 -f 开关。
我还发现了一个稍后的提交,它确实显示了对文件的更改。我很确定另一个开发人员然后从现在的 fubared 分支进行了合并,然后更新了他们提交中的所有这些文件。他们显然没有查看他们提交的文件,并注意到更改的文件不是 3 个,而是 60+。现在事情正在理顺。
【问题讨论】:
-
那么,您是说命令:
git diff <commit x>^! <file y>不会向控制台打印任何内容? -
在 git 中你不能先推再拉。
-
您是否在 GitHub 上查找提交更改?还是在您的终端本地?