我希望停止跟踪文件,但仍然保留在我的工作树中。git-rm --cached当他们拉动时删除另一个用户的工作树文件
我收集到了,git rm --cached FILE
会让我这样做。但是,如果别人拉这个改变,他们的本地副本会被删除?
我希望停止跟踪文件,但仍然保留在我的工作树中。git-rm --cached当他们拉动时删除另一个用户的工作树文件
我收集到了,git rm --cached FILE
会让我这样做。但是,如果别人拉这个改变,他们的本地副本会被删除?
是的,他们的副本将被自动删除。想象一下,如果这种删除不会发生 - 那么所有用户的工作副本将被成堆的删除文件污染,而这些文件不再需要了。
但是,如果远程用户对这些文件进行了本地更改,它们将不会被删除,因为pull
将导致合并冲突。
由于Jefromi表明在他的评论,而这些文件是在其他用户的侧面取出,他们可以很容易地恢复 - 当当版本控制之下,是不是? ;-)文件可以通过git checkout <revision> -- <files...>
得到。作为改版你可以指定以前的ID提交,用于拉它保存在ORIG_HEAD
(见this question了解详细信息):
git checkout ORIG_HEAD -- removed_file
在这种情况下,我宁愿无视他们本地只:
如果他们已经追踪:
git update-index --skip-worktree FILE
如果他们未追踪:将它们添加到您的本地排除文件
echo "FILE" >> .git/info/exclude
如果您的所有回购(例如您的回购协议)都有,您也可以拥有全球.gitignore。 *〜)
结合将它们添加到.gitignore,我希望! – Cascabel 2010-07-23 14:49:31
是的。这让我想知道如果将它们添加到gitignore并且不要git rm他们会发生什么...... – rod 2010-07-23 14:59:06
这肯定是在其他问题中讨论过的;会发生什么......没什么。 – 2010-07-23 15:03:45