2016-07-08 98 views
0

是否有任何區別:刪除文件

git rm name.txt 
git commit -m "message" 

#delete the file name.txt normally with the file manager (right-click and delete) and erasign the trash 
git add . 
git commit -m "message" 

回答

2

如果您對該文件夾所做的唯一更改是刪除該文件,則不會,最終結果沒有差異。兩者都將從索引中刪除該文件的工作目錄。 (git會爲你做它在git rm情況下,當你將自己在第二個都做到了。)

但是如果您在工作目錄所做的任何其他變化,那麼這些變化將也上演。這包括暫存先前未被跟蹤的文件。這可能會很煩人,因爲您可能會意外地包含構建輸出,或者您的編輯器在它正在編輯的文件旁邊創建swapfiles?

由於這個原因,我推薦明確git rm filename而不是rm filename && git add .

3

使用git rm將刪除存儲庫索引文件,並會自動包含在您下次提交。通過手動刪除文件,您仍然需要添加已刪除的文件,以便git明白它已被刪除。命令rm只需一步完成。

+0

當我運行'git rm name.txt'時,文件從工作目錄中消失。爲什麼?這不是說該命令從文件系統中刪除文件嗎? – iUser

+0

不應該如此。請參閱文檔[此處](https://git-scm.com/docs/git-rm)。它會將其從推送到服務器的回購中刪除,但實際上將其移除到您的計算機上。 – Confiqure

+2

@Confiqure Plain'git rm file' _will_將文件從工作目錄中刪除。要僅從索引中刪除它,請使用'git rm --cached file'而不是... – twalberg