假設我在我的git倉庫中有一個名爲foo
的文件。暫存已刪除的文件
假設它已被刪除rm
(而不是git rm
)。然後git狀態將顯示:
Changes not staged for commit:
deleted: foo
如何處理此單個文件刪除?
如果我嘗試:
git add foo
它說:
'foo' did not match any files.
假設我在我的git倉庫中有一個名爲foo
的文件。暫存已刪除的文件
假設它已被刪除rm
(而不是git rm
)。然後git狀態將顯示:
Changes not staged for commit:
deleted: foo
如何處理此單個文件刪除?
如果我嘗試:
git add foo
它說:
'foo' did not match any files.
您可以使用
git rm -r --cached -- "path/to/directory"
上演了一出刪除的目錄。
臺數,你可以使用所有手動刪除的文件:
git rm $(git ls-files --deleted)
要添加別名這個命令git rm-deleted
,運行:
git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
$()表示法aparently不存在於Windows bash控制檯中,導致'未知選項\'刪除)' –
如果您的路徑中有空格,我認爲這不起作用。至少,它不在我的系統上(使用zsh)。 –
爲我完美工作!我確實需要什麼。巨大的欣賞在這裏! – RedSands
由於Git的2.0.0,git add
還將上演文件刪除。
< pathspec> ...
文件從添加內容。可以給Fileglobs(例如* .c)添加所有>匹配的文件。還可以給出一個主要的目錄名(例如添加dir/file1和dir/file2的目錄)來更新索引以匹配整個目錄的當前狀態(例如,指定目錄不僅會記錄文件dir/file1修改在工作樹中,將一個文件dir/file2添加到工作樹中,而且還將一個文件dir/file3從工作樹中刪除。請注意,舊版本的Git用於忽略已刪除的文件;如果您想添加修改或新文件,但忽略刪除的文件,請使用--no-all選項。
這是舊的Git版本的問題嗎?現在它似乎不是一個,它的作用類似於修改後的文件。 – cst1992