18

我希望停止跟踪文件,但仍将它们保留在我的工作树中。

我已经收集到git rm --cached FILE可以让我这样做。但是,如果其他人拉此更改,他们的本地副本会被删除吗?

4

2 回答 2

8

是的,他们的副本将被自动删除。想象一下,如果这种删除不会发生——那么所有用户的工作副本都会被成堆的已删除文件污染,不再需要这些文件。

但是,如果远程用户对这些文件进行了本地更改,它们不会被删除,因为pull会导致合并冲突。

正如Jefromi在他的评论中所建议的那样,虽然文件在其他用户端被删除,但它们可以很容易地恢复——它们处于版本控制之下,不是吗?;-) 文件可以通过git checkout <revision> -- <files...>. 作为修订版,您可以指定上一次提交的 id,以便将其保存在其中ORIG_HEAD(有关详细信息,请参阅此问题):

git checkout ORIG_HEAD -- removed_file
于 2010-07-23T14:03:49.420 回答
2

在这种情况下,我宁愿只在本地忽略它们:

如果他们已经被跟踪:

git update-index --skip-worktree FILE

如果它们未被跟踪:将它们添加到您的本地排除文件中

echo "FILE" >> .git/info/exclude

你也可以拥有全局 .gitignore,如果它是你要为你的所有 repos 做的事情(例如 *~)

于 2014-04-19T02:30:47.113 回答