如何快速刪除 Git 倉庫新增修改

語言: CN / TW / HK

在使用 Git 這款版本控制工具,來管理專案程式碼,蠻多的時候,會涉及到“刪除 Git 倉庫新增修改”這樣的訴求;如果能快速優雅做到,將會促進開發效率;這篇文章即在於,從不同訴求角度,來逐一探討:“如何快速刪除 Git 倉庫新增修改”。

只刪除已追蹤的檔案

在 Git 專案中,可以在 .gitignore 檔案,對一些不需要提交到程式碼倉庫的檔案(夾)加以忽視;對於這類檔案,還有尚未提交到 本地暫存區 的內容,都是未追蹤檔案(untracked files),在處理時候,方式略有不同。如果只是刪除已追蹤的檔案,可以有以下兩種方法:

git checkout

# 刪除所有已追蹤修改
git checkout  .

# 刪除指定檔案
git checkout -- your-modified-filename

# 刪除指定資料夾內所有已追蹤修改
git checkout -- your-modified-dir

git reset

# 刪除所有已追蹤修改
git reset --hard

git stash

# 刪除所已追蹤修改
git stash  
git stash drop

在用這種方法時候,還需要考慮“儲藏區”是否有其他內容;很明顯可以看出來,使用 git checkout 是最為靈活且快捷的方式。

只刪除未追蹤的檔案

對於新增了一個未追蹤的檔案,直接在控制檯、編輯器,就可以手動移除;但,如果是很多個,就需要用些方法,才會更加高效。比較推薦的方法是使用 git clean :

# 刪除 untracked files
git clean -f

# 連 untracked 的目錄也一起刪掉   
git clean -fd

# 連 gitignore 的 untrack 檔案/目錄也一起刪掉 (慎用)
git clean -xfd

可以根據自己的訴求,附帶合適的引數來執行命令;一般採用 git clean -fd 即可。但,為資料安全烤箱,強烈建議在執行刪除命令前,加上 -n 引數,先看看會刪掉哪些檔案,以防止重要檔案被誤刪。如下面示例:

git clean -nfd
// Would remove xxx
// Would remove yyy

刪除本地修改的所有檔案

對於所做的修改,卻還沒有提交( git add )的內容,結合上面:point_up_2:的總結,執行如下命令即可:

git checkout  . && git clean -fd
# Or
git checkout  . && git clean -xfd

如果有些內容,已經 git add 新增至暫存區,也要丟棄刪除的話,可以如下操作:

git reset && git checkout  . && git clean -fd
# Or
git reset && git checkout  . && git clean -xfd

倘若說部分內容,用 git commit 將暫存區裡的改動給提交到本地的版本庫,也要丟棄刪除的話,可以如下操作:

git reset --hard HEAD^ && git checkout  . && git clean -fd
# Or
git reset --hard Last-Commit-ID && git checkout  . && git clean -fd

以上,即對 如何快速刪除 Git 倉庫新增修改 的一些總結,如有更加便捷的辦法,歡迎留言相告。

@2019-11-02 於深圳.福田 Last Modify:2019-11-02

原文首鏈: 如何快速刪除 Git 倉庫新增修改