使用Git實現(xiàn)revert的完整操作步驟
一、git revert核心概念
git revert 是最安全的代碼回退方式,它不會刪除/修改歷史提交記錄,而是生成一個新的提交,用這個新提交來“抵消”目標(biāo)提交的所有修改。這種方式適合:
- 已推送到遠(yuǎn)程倉庫的代碼(避免修改公共歷史)
- 需要保留回退痕跡、便于追溯的場景
- 團隊協(xié)作中回退代碼(不影響他人工作)
二、git revert完整操作步驟(以你的機械臂場景為例)
步驟 1:查看提交歷史,找到要撤銷的 Commit ID
先通過日志找到需要撤銷的目標(biāo)提交的哈希值(前7位即可):
# 查看簡潔的提交歷史(推薦) git log --oneline # 查看詳細(xì)的提交歷史(包含作者、時間、完整Commit ID) git log
示例輸出(--oneline 模式):
a87b9c0 (HEAD -> main) 優(yōu)化機械臂J3角度判斷邏輯 5d6e7f8 初始化機械臂笛卡爾坐標(biāo)獲取 9b8a7s6 新增手型切換基礎(chǔ)邏輯
假設(shè)你要撤銷的是 a87b9c0 這個“優(yōu)化J3角度判斷”的提交。
步驟 2:執(zhí)行g(shù)it revert撤銷目標(biāo)提交
基礎(chǔ)用法(撤銷單個提交)
# 撤銷指定Commit ID的提交,會自動打開提交信息編輯器 git revert a87b9c0
執(zhí)行后 Git 會自動生成一個默認(rèn)的 revert 提交信息(比如 Revert "優(yōu)化機械臂J3角度判斷邏輯"),你可以按之前講的規(guī)范修改(補充原因、關(guān)聯(lián)工單等),修改完成后:
- 按
Esc退出編輯模式 - 輸入
:wq保存并退出(vim編輯器操作)
快速提交(無需打開編輯器)
如果不想手動編輯提交信息,可直接用 -m 參數(shù)指定信息:
git revert a87b9c0 -m "revert: 撤銷機械臂J3角度判斷邏輯的修改 (#123) 原因:J3角度范圍判斷覆蓋不全,導(dǎo)致手型誤判 撤銷的提交ID:a87b9c0"
步驟 3:處理 revert 過程中的沖突(常見場景)
如果目標(biāo)提交的修改和當(dāng)前代碼有沖突(比如你在撤銷前又改了同一行代碼),Git 會提示沖突,此時:
查看沖突文件:
git status
沖突文件會被標(biāo)記為 both modified。
打開沖突文件,手動解決沖突:
沖突處會顯示如下格式,你需要保留正確的代碼,刪除沖突標(biāo)記:
<<<<<<< HEAD # 當(dāng)前分支的代碼 elbow_x = shoulder_x + 10 # 現(xiàn)有邏輯 ======= # 被撤銷提交的代碼 elbow_x = shoulder_x + 5 # 要撤銷的邏輯 >>>>>>> a87b9c0 (優(yōu)化機械臂J3角度判斷邏輯)
解決沖突后,標(biāo)記文件為已解決,并完成 revert:
# 標(biāo)記沖突文件已解決 git add 沖突文件名.py # 完成 revert 提交 git revert --continue
如果想放棄這次 revert,執(zhí)行:
git revert --abort
步驟 4:推送 revert 提交到遠(yuǎn)程倉庫
撤銷完成后,將新生成的 revert 提交推送到遠(yuǎn)程(比如 main 分支):
git push origin main
三、進(jìn)階場景:撤銷多個提交/合并提交
1. 撤銷連續(xù)的多個提交
比如要撤銷 a87b9c0 到 9b8a7s6 之間的所有提交(注意順序:舊提交在前,新提交在后):
git revert 9b8a7s6..a87b9c0
2. 撤銷合并提交(需指定父節(jié)點)
如果要撤銷的是合并分支的提交,需要加 -m 參數(shù)指定父節(jié)點(通常用 1 表示主分支):
# 撤銷合并提交(Commit ID為合并提交的ID) git revert 合并提交ID -m 1
四、git revertvsgit reset(新手必區(qū)分)
| 特性 | git revert | git reset |
|---|---|---|
| 歷史記錄 | 保留所有提交(新增revert提交) | 刪除指定提交后的所有記錄 |
| 適用場景 | 已推送的遠(yuǎn)程代碼 | 本地未推送的代碼 |
| 團隊協(xié)作 | 安全(不影響他人) | 危險(會覆蓋遠(yuǎn)程歷史) |
| 可追溯性 | 強(能看到撤銷過程) | 弱(歷史記錄被刪除) |
總結(jié)
git revert是安全的回退方式,核心是生成新提交抵消舊修改,適合已推送的代碼。- 核心操作流程:
查看Commit ID → 執(zhí)行g(shù)it revert → 處理沖突(如有)→ 推送遠(yuǎn)程。 - 提交信息要包含「操作類型+撤銷原因+目標(biāo)Commit ID」,便于團隊追溯。
到此這篇關(guān)于使用Git實現(xiàn)revert的完整操作步驟的文章就介紹到這了,更多相關(guān)Git實現(xiàn)revert步驟內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spark中的數(shù)據(jù)讀取保存和累加器實例詳解
這篇文章主要為大家介紹了Spark中的數(shù)據(jù)讀取保存和累加器實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
archlinux 羅技K380 F1-F12 功能鍵鎖定(實現(xiàn)方法)
這篇文章主要介紹了archlinux 羅技K380 F1-F12 功能鍵鎖定,在windows中羅技K380可以安裝Logitech Options來實現(xiàn)這個Fn鎖定功能,需要的朋友可以參考下2023-04-04

