我们的开发团队正在使用 git,最近我们至少两次丢失了文件更改。我们正在使用私人 Github 存储库。
在当前情况下,我们可以返回 Github 上的日志并查看我对文件所做的一些更新。后来,另一位团队成员更改了文件的不同部分,它似乎破坏了我的更改。我在当地仍然有它们。
还有其他人经历过这个吗?有什么原因或解决办法吗?
I don't think任何人都在做任何变基或任何奇特的事情——只是拉和推。
我想补充几句话。我最近注意到 git 中非常奇怪的行为。因此我的团队遇到了很大的问题。
我不知道这是怎么发生的,但我的仓库中的历史似乎不一致。
小插图:
提交 XXXXXXXXX:
“bar”行已添加到文件 foo 中。
...工作正在进行中...
稍后进行大量提交(假设大约 100 次):
该文件中不再存在“bar”行!
调查:
1.我检查了文件的历史记录:
git 日志 foo
和
gitk foo
我什至使用外部工具(gvimdiff)比较了每次提交的连续 blob。
有趣的是,我发现了两个提交(我们称它们为 YYY 和 ZZZ)。
来自提交 YYY 的文件 foo 的 Blob 包含“bar”,但来自 ZZZ 的 Blob 则不包含。
当我使用 gitk(和 gitweb)检查这些提交的提交差异时,我注意到 ZZZ 中没有删除行“bar”的操作。
有没有可能中间有一些承诺,然后就凭空消失了?
或者也许提交 ZZZ 刚刚删除了我的行并且嵌入在 git(或 gitk)中的 diff 工具已损坏?
2.我搜索了可以使用“git log -S”删除此行的提交,例如:
git log -S'bar' -- foo
事实证明,这一行从未被删除。事实上它被添加了两次。第一次将其引入项目时,第二次将其作为紧急错误修复再次添加。
我真的很喜欢使用 git,甚至说服了几个朋友使用它,但如果这种魔力继续发生,我将不得不开始寻找替代方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)