2010-07-23 54 views
16

我希望停止跟蹤文件,但仍然保留在我的工作樹中。git-rm --cached當他們拉動時刪除另一個用戶的工作樹文件

我收集到了,git rm --cached FILE會讓我這樣做。但是,如果別人拉這個改變,他們的本地副本會被刪除?

+0

結合將它們添加到.gitignore,我希望! – Cascabel 2010-07-23 14:49:31

+0

是的。這讓我想知道如果將它們添加到gitignore並且不要git rm他們會發生什麼...... – rod 2010-07-23 14:59:06

+0

這肯定是在其他問題中討論過的;會發生什麼......沒什麼。 – 2010-07-23 15:03:45

回答

8

是的,他們的副本將被自動刪除。想象一下,如果這種刪除不會發生 - 那麼所有用戶的工作副本將被成堆的刪除文件污染,而這些文件不再需要了。

但是,如果遠程用戶對這些文件進行了本地更改,它們將不會被刪除,因爲pull將導致合併衝突。

由於Jefromi表明在他的評論,而這些文件是在其他用戶的側面取出,他們可以很容易地恢復 - 噹噹版本控制之下,是不是? ;-)文件可以通過git checkout <revision> -- <files...>得到。作爲改版你可以指定以前的ID提交,用於拉它保存在ORIG_HEAD(見this question瞭解詳細信息):

git checkout ORIG_HEAD -- removed_file 
+1

如果拉不衝突,但他們想要回文件,他們所要做的就是'git checkout HEAD^'。 – Cascabel 2010-07-23 14:50:21

+0

謝謝,這就是我需要知道的。 手指交叉我沒有刪除我的同事的工作目錄上的任何重要的xcode文件。 – rod 2010-07-23 15:03:08

1

在這種情況下,我寧願無視他們本地只:

如果他們已經追蹤:

git update-index --skip-worktree FILE 

如果他們未追蹤:將它們添加到您的本地排除文件

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

如果您的所有回購(例如您的回購協議)都有,您也可以擁有全球.gitignore。 *〜)

相關問題