git pull,变化使其他同事恢复

时间:2014-05-08 09:47:55

标签: git

我的Git存储库遇到了一个令人费解的问题。我对一些文件进行了明确的更改,例如我的仓库中的queue.php:

enter image description here

我一段时间地提交了更改,并将其推送到存储库。

enter image description here

在a8a76d4,我的更改被推送到存储库。

在2cd4666上,它显示我的更改已被明确删除,但我的同事坚定不移,他从未编辑此文件,也没有发生冲突。

enter image description here

这在过去一直是个问题,并且一直在发生。我怀疑开发人员正在使用GUI,当出现冲突时,他们只需点击“使用我的解析”。但是对于这个文件,这似乎不太可能,因为它没有其他变化。

当人们声称从未接触过这些文件时,我无法弄清楚为什么我的更改会被丢弃。

我们将在我们的工作流程中采用一种新的方法,开发人员需要分叉并提出拉取请求,但我仍然试图理解为什么会像这样覆盖更改。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

Git责备

如果你使用git blame,你可以看到哪个提交对任何给定的代码行负责:

> git blame queue.php
...
xxxxxxx queue.php   Author    Date    47) 'queue' => 'default'

然后,您只需要查看负责确定如何/为何如此制作的提交:

> git show xxxxxxx
commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Author: Derp Diggler <email>
Date:   The date

    Unwittingly screw things up

    By the gods, we'll have no tms

diff --git ...

当然,这只会确认您已经知道的内容 - 提交2cd4666负责,问题的其余部分不是编程问题 - 它是有机的=)。

或者是应该被修改

的文件

或者,如果queue.php是开发人员认为要编辑以配置其本地安装的文件,则根本不应该对其进行跟踪。

在初始化应用程序时,请考虑将名为queue.default.php的文件提交到开发人员复制queue.php的存储库。或者,任何其他解决方案,用户可以在不修改跟踪文件的情况下更改其应用程序的配置。

Some interesting reading沿着这些方向。