從 Git 中的遠端倉庫中刪除提交

Abdul Jabbar 2023年1月30日 2022年4月20日
  1. 從 Git 中的本地倉庫中刪除提交
  2. 從 Git 中的遠端倉庫中刪除提交
從 Git 中的遠端倉庫中刪除提交

有時在使用 Git 時,我們會意識到提交出錯並且需要刪除。原因可能是客戶不希望在產品中使用該功能。

要麼我們引入了一個錯誤,要麼需要再次處理,因為我們已經提交了錯誤的實現。

本文將討論我們如何刪除本地和遠端倉庫並使用 Git 命令清理所有這些倉庫。

在 Git 中,我們可以通過兩個不同的過程來刪除提交。這些過程取決於更改,無論它們是否被推送到遠端分支。

從 Git 中的本地倉庫中刪除提交

如果我們的更改還沒有推送到遠端倉庫,那麼我們可以通過以下命令在本地刪除最近的提交:

git reset --hard HEAD~1

上面提到的命令將丟棄資料夾(工作樹)中所做的所有更改,並將 HEAD 移動到 HEAD 之前的最新提交。

如果我們想在特定的提交之前刪除提交,我們將執行 git log 來搜尋特定的提交 id。之後,我們將使用以下提到的命令刪除這些提交:

git reset --hard <sha1-commit-id>

前面提到的這個命令將丟棄工作樹中所做的所有更改,並將 HEAD 移動到我們選擇的提交中。

從 Git 中的遠端倉庫中刪除提交

如果我們想從遠端倉庫中刪除提交,我們將強制推送新的 HEAD 提交。或者,如果我們已經將更改推送到遠端倉庫,我們將執行以下命令:

git push origin HEAD --force

如果其他人拉了這個分支,那麼最好啟動一個新分支;否則,它將把它合併到他們的工作中,在這種情況下,我們需要再次推回同一個分支。

這將從本地和遠端兩個倉庫中刪除該提交。如果我們只需要從遠端而不是從本地刪除它,那麼我們將執行以下提到的命令:

git push origin +HEAD^:branch_name

在執行這些命令之前,我們應該再看一下,因為它會刪除我們所有的工作目錄更改。

刪除後,如果我們想再次搜尋該提交,更優選的是,它會出現在 <git reflog> 中,除非我們的倉庫已被垃圾回收。

Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

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

相關文章 - Git Delete