目錄
一、撤銷最近的提交
1.查看提交歷史記錄
2.撤銷提交
二、撤銷已經推送到遠端倉庫的提交
1.撤銷已推送到遠端倉庫的提交
2.撤銷已推送到遠端程式庫的提交,同時保留歷史記錄
三、如何修改提交資訊
結論
首頁 開發工具 Git 如何撤銷git的commit

如何撤銷git的commit

Apr 03, 2023 am 11:51 AM

Git是一種流行的版本控制工具,但是即使是經驗豐富的開發人員也有可能意外地提交了錯誤的程式碼或個人資訊。在這種情況下,撤銷提交是至關重要的,以便在不破壞程式碼庫歷史記錄的情況下修復問題。

以下是如何撤銷git提交的步驟。

一、撤銷最近的提交

如果您已提交了錯誤的程式碼或個人信息,而且您還沒有將這個錯誤推送到遠端倉庫,那麼最簡單的方法就是撤銷這個提交。

1.查看提交歷史記錄

要撤銷提交,請先使用以下命令查看您的提交記錄:

git log

這將顯示您近期的所有提交。

請注意每個提交的雜湊值,這將有助於後續步驟。

2.撤銷提交

要撤銷最近的提交,您可以執行以下命令:

git reset HEAD~1

這將取消最近的提交,但會保留您對該提交所做的更改。

上圖中,HEAD~1表示"撤銷最近的一次提交"。

要同時還原所有更改,可以使用以下命令:

git reset HEAD~1 –hard

這將撤銷最近的提交並還原所有更改。

二、撤銷已經推送到遠端倉庫的提交

如果您已經將錯誤的提交推送到遠端倉庫,那麼您需要使用下列步驟撤銷該提交。

1.撤銷已推送到遠端倉庫的提交

要撤銷已推送到遠端倉庫的提交,請使用下列命令:

git revert <commit>

此命令會建立一個新的提交,該提交會將指定提交()撤消,並在歷史記錄中保留一個新的提交,以指示該更改已經被取消。

請注意,此命令是不可逆的,因為它將變更記錄為歷史記錄的一部分。因此,請小心使用此命令,並確保準確指定要取消的提交。

上圖顯示了使用git revert指令的結果。

2.撤銷已推送到遠端程式庫的提交,同時保留歷史記錄

如果您不想將撤銷的變更完全從程式碼庫中刪除,並希望保留該變更的歷史記錄,可以使用以下命令:

git revert -n <commit>

此命令將建立一個新的提交,以指示該變更已被取消。但是,它不會對檔案進行任何更改,因此您可以在指向要還原的提交之前對檔案進行修改。

git commit -c ORIG_HEAD

該指令會建立一個新的提交,該提交包含所有已撤銷的變更和所有其他變更。此新提交是您要保留的歷史記錄的一部分。

三、如何修改提交資訊

如果您不喜歡您的提交資訊或是您提交的資訊並不完整,可以使用以下命令修改提交資訊:

git commit --amend

這個指令會將您的提交資料放在一個編輯器中,以便您進行修改。

預設情況下,此命令使用您配置的文字編輯器。如果您想要變更預設編輯器,請透過下列方式設定環境變數:

export EDITOR="nano"

執行以上命令後,您將可以在nano編輯器中修改提交資訊。

當您完成對提交資訊的編輯時,請儲存並退出編輯器。這將更新最新提交的資訊。

結論

在Git中撤銷提交是一個很有用的技巧,可以幫助您修復錯誤,同時不會破壞程式碼庫的歷史記錄。無論您是剛開始使用Git還是經驗豐富的開發人員,現在您應該知道如何輕鬆地撤銷提交。

以上是如何撤銷git的commit的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1602
29
PHP教程
1504
276
我如何查看我的git存儲庫的提交歷史? 我如何查看我的git存儲庫的提交歷史? Jul 13, 2025 am 12:07 AM

要查看Git提交歷史,使用gitlog命令。 1.基本用法為gitlog,可顯示提交哈希、作者、日期和提交信息;2.使用gitlog--oneline獲取簡潔視圖;3.通過--author和--grep按作者或提交信息過濾;4.添加-p查看代碼變更,--stat查看變更統計;5.使用--graph和--all查看分支歷史,或借助GitKraken、VSCode等可視化工具。

如何刪除git分支? 如何刪除git分支? Jul 13, 2025 am 12:02 AM

要刪除Git分支,首先確保已合併或無需保留,使用gitbranch-d刪除本地已合併分支,若需強制刪除未合併分支則用-D參數。遠程分支刪除使用gitpushorigin--deletebranch-name命令,並可通過gitfetch--prune同步他人本地倉庫。 1.刪除本地分支需確認是否已合併;2.遠程分支刪除需使用--delete參數;3.刪除後應驗證分支是否成功移除;4.與團隊溝通避免誤刪共享分支;5.定期清理無用分支以保持倉庫整潔。

如何將子樹添加到我的git存儲庫中? 如何將子樹添加到我的git存儲庫中? Jul 16, 2025 am 01:48 AM

要將子樹添加到Git倉庫,首先添加遠程倉庫並獲取其歷史記錄,接著使用gitmerge和gitread-tree命令將其合併為子目錄。步驟如下:1.使用gitremoteadd-f命令添加遠程倉庫;2.運行gitmerge--srecursive--no-commit獲取分支內容;3.使用gitread-tree--prefix=指定目錄將項目作為子樹合併;4.提交更改以完成添加;5.更新時先gitfetch再重複合併步驟提交更新。此方法保持外部項目歷史完整且便於維護。

如何從GIT登台區域中刪除文件? 如何從GIT登台區域中刪除文件? Jul 12, 2025 am 01:27 AM

soundstagafafileiititWittingChatcase,usegitizeadtordoremevome fromarningareAlact.toundact rungit reset。

即使沒有合併,我如何強制刪除git分支? 即使沒有合併,我如何強制刪除git分支? Jul 14, 2025 am 12:10 AM

要強制刪除未合併的Git分支,可使用gitbranch-D命令。該命令會忽略分支的合併狀態直接刪除它,適用於測試後無用的分支、被放棄的功能分支或需從遠程重新創建的本地舊分支等情況。但需注意:刪除後提交記錄仍短暫存在於本地,最終會被垃圾回收機制清理;誤刪後可通過gitreflog恢復,但窗口期較短。因此,執行前務必確認分支無用、無人協作且名稱正確,避免數據丟失。

如何從藏匿處創建分支? 如何從藏匿處創建分支? Jul 14, 2025 am 12:47 AM

TocreateabranchfromastashinGit,firstlistyourstasheswithgitstashlisttoidentifythecorrectone.Next,createanewbranchusinggitcheckout-bnew-branch-name,thenapplythestashviagitstashapplystash@{0}.Optionally,committheappliedchangeswithgitadd.andgitcommit-m&q

如何在一個命令中創建並切換到新的git分支? 如何在一個命令中創建並切換到新的git分支? Jul 16, 2025 am 01:39 AM

是的,你可以使用一條命令創建並切換到新的Git分支,具體方法如下:1.使用gitswitch-c:這是更現代且清晰的方式,例如gitswitch-cnew-feature會創建並立即切換到名為new-feature的分支;2.使用gitcheckout-b:這是較舊但常用的方法,例如gitcheckout-bnew-feature效果與前者相同。注意:gitswitch在Git2.23中引入,舊版本需使用gitcheckout。你可以在創建分支時指定基於其他分支,如gitswitch-cnew-

如何將從本地GIT存儲庫的更改轉換為遠程存儲庫? 如何將從本地GIT存儲庫的更改轉換為遠程存儲庫? Jul 12, 2025 am 01:38 AM

topushchanges fromalocalgitrepositorytorytoaroteone,首先確定您的reonThecorrectBranchusinggitBranchingGitBranchandSwitchIfneDedwithGitcheCeckOutorGitsWitch.next,StageanDcommityourchangeslocoltocallCommityourCommityourCommityourCommitalCommitalCommitalCompallyWithGitAdadDandDandDandDandDandDandDandDandGitCommit-m theme

See all articles