在 Git 中撤消上次提交

Abdul Jabbar 2023年1月30日 2022年4月22日
  1. 在 Git 中撤消上次提交(長版本)
  2. 在 Git 中撤消上次提交(短版)
在 Git 中撤消上次提交

在使用 Git 時,我們會遇到各種情況,我們故意想要撤消最後一次提交,因為我們想廣泛地重新提交它,甚至由於我們過去犯的錯誤而將它完全刪除。試想一下,如果 Git 有簡單的 Undo Last Commit 選項,甚至是最流行的鍵盤快捷鍵,會有多少人會使用它。

我們有一個簡單而強大的命令,與上面討論的相同。該命令非常強大,因為它丟棄了最後一次提交併將 HEAD(當前分支)恢復到在該倉庫中進行最後一次提交之前的狀態。對於新的 Git 使用者來說,這可能有點令人困惑,但是一旦我們掌握了它,它對我們的 Git 工具箱來說就會變得如此簡單。

在 Git 中撤消上次提交(長版本)

首先,開啟所需的終端,然後執行 ​​Git status。這將向我們展示我們的倉庫的狀態,包括我們所做的所有提交的列表。大多數時候,它說有三個提交。

第一個是對名為 master 的分支的提交,這是我們當前在倉庫中的分支。第二個是對名為 Dev 的新分支的提交,最後,第三個是對另一個名為 NewDev 的分支的提交。

最後兩個很有趣,因為它們是我們想要撤消的。我們想丟棄我們對 DevNewDev 所做的提交,並將 HEAD 恢復到提交之前的狀態。讓我們執行下面的命令,看看之後會發生什麼:

$ git reset --hard 

HEAD 現在處於之前的狀態。正如我們所看到的,新的 HEAD 指標現在回到了下一次提交。請注意,不再有標記為 Dev 的提交。此外,標記為 NewDev 的提交返回到下一個提交

在 Git 中撤消上次提交(短版)

如果我們想撤消最後一次提交,請確保我們位於要撤消提交的分支上,然後執行 ​​git reset –hard。如果我們想撤消當前分支上的最後一次提交,請確保我們在 master 上,然後執行以下命令。

git reset --hard origin/master.  

只有當我們完全確定不再需要這些更改時,才能應用上述程式。但反過來說,如果我們需要將這些更改作為工作副本中未提交的本地更改,那麼對於這種情況,reset 命令是我們解決此問題的方法:

$ git reset --soft HEAD~1

reset 會將我們當前的 HEAD 分支撤消到特定點。在我們上面提到的示例中,我們命令返回到最近撤消之前的最後一次提交 - 有利地建立我們最後一次未完成的提交。 --soft 標誌確保恢復未完成的修訂中的更改。

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 Commit