從 Git 中的分支中刪除提交
當我們開始處理一個大型專案時,我們經常會遇到必須在分支中更新、刪除或新增部件的情況。如果開發時間跨度較長且有嚴格的截止日期,則提交訊息的維護可能會成為團隊的障礙。
因此,為了更簡單地維護簡潔的提交歷史,我們將在本文中學習一些在使用 Git 時可能會遇到的常見條件的用法。
Git 為我們提供了一些命令來從分支中刪除我們之前的提交。本文下面將討論可用的策略和命令。
在 Git 中有幾種方法可以從分支中刪除或移除提交。第一步是找出最適合我們場景的技巧,這取決於我們是否已將提交推送到倉庫中。
在嘗試之前,我們應該注意執行這些命令將刪除我們的工作目錄更改。另外,請注意,為了將來我們希望在倉庫中單獨儲存更改,git reset
是一個將我們的工作目錄重置為指定提交的命令。
如果未推送到 Git 中的倉庫,則刪除更改
在我們尚未將更改推送到倉庫的場景中,將使用以下命令。
git reset --hard HEAD~1
這將擺脫所有工作目錄更改並將 HEAD 移動到 HEAD 之前的提交。
假設我們必須向上刪除提交,直到特定提交。在這種情況下,我們將在命令列中執行 git log
命令以查詢特定的提交 ID,然後將執行以下命令:
git reset --hard <sha1-commit-id>
這將忽略所有工作目錄更改並將 HEAD 移動到所選的提交。
如果推送到 Git 中的倉庫,則刪除更改
在另一種情況下,當我們已經推送了我們的更改時,我們需要執行以下命令。
git push origin HEAD --force
請注意,如果其他人已經拉取了相應的分支,則從最新的分支開始會更好。如果我們在其他人拉動時不執行此操作,它會將其合併到他們的工作中,我們將再次將其推回。
如果遇到需要查詢已刪除提交的情況,除非我們在倉庫中收集了垃圾,否則它會出現在 git reflog
中。
刪除已刪除的提交
要從分支中刪除已刪除的提交,我們可以使用以下命令:
git reset --soft HEAD^
此命令將恢復或重置先前提交的所有更改,並將其帶回倉庫中的新提交。
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn