git update-index --assume-unchanged在合并时未按预期工作

时间:2014-03-06 19:09:02

标签: git git-merge gitignore

我更新了一些文件的索引,以便从git中删除它们。不幸的是,这些文件仍然在队友的一些提交中流传。

这意味着如果我提取更改,即使我忽略了我这些文件,文件仍会导致冲突和一些取消链接错误。我可以解决此问题的唯一方法是使用--no-assume-unchanged取消设置更新索引,并重新提交所有文件以完成合并。这会创建一个恶性循环,文件再次回流。

如何在不强制整个团队重新克隆其存储库的情况下解决此问题?

1 个答案:

答案 0 :(得分:0)

你不是很清楚自己最终想要达到的目标,而且在我看来,这更像是一个社会和协调问题,而不是{{1}的问题。 }。

如果您的最终目标是从循环中删除文件(在您说明时结束“恶性循环”),您应该使用assume-unchanged删除它们,确保构建正确且没有测试或暂存错误,并将结果提交并发布(即推送)到权威的开发分支,例如 master 。当您的团队成员拉动分支时,他们将不得不处理文件消失的事实,并将事实合并到他们的开发分支中。这当然更多是沟通和协调问题而不是git问题,并且不需要重新克隆存储库。

但是,如果你的最终目标是在你的开发工作树中永久忽略这些文件,尽管有任何提取和拉动,那么git rm是错误的工具,因为它的文档明确要求您手动处理合并提交。这当然是优雅和正确的方法 - 在存储库中的所有文件 之后,您需要知道它正在发生变化。