- Git 入門
- Git - 首頁
- Git - 版本控制
- Git - 基本概念
- Git - 命令列
- Git - 安裝
- Git - 首次設定
- Git - 基本命令
- Git - 獲取幫助
- Git - 工具
- Git - 速查表
- Git - 術語
- Git 分支
- Git - 簡述分支
- Git - 建立新分支
- Git - 切換分支
- Git - 分支和合並
- Git - 合併衝突
- Git - 管理分支
- Git - 分支工作流程
- Git - 遠端分支
- Git - 跟蹤分支
- Git - 變基
- Git - 變基與合併
- Git - 合併提交
- Git 操作
- Git - 克隆操作
- Git - 打標籤操作
- Git - 別名操作
- Git - 提交操作
- Git - 暫存操作
- Git - 移動操作
- Git - 重新命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修補操作
- Git - 差異操作
- Git - 狀態操作
- Git - 日誌操作
- Git - HEAD 操作
- Git - origin master
- Git 撤銷
- Git - 撤銷更改
- Git - 檢出
- Git - 回退
- Git - 重置
- Git - 恢復操作
- Git - Rm
- Git - 切換操作
- Git - Cherry-pick
- Git - 修正
- Git 在伺服器上
- Git - 本地協議
- Git - 智慧 HTTP 協議
- Git - 啞 HTTP 協議
- Git - SSH 協議
- Git - Git 協議
- Git - 在伺服器上獲取 Git
- Git - 設定伺服器
- Git - 守護程序
- Git - GitWeb
- Git - GitLab
- Git - 第三方託管選項
- 分散式 Git
- Git - 分散式工作流程
- Git - 為專案貢獻程式碼
- Git - 維護專案
Git 回退
git revert 命令建立一個新的提交,用於撤銷指定先前提交的更改,而不會更改提交歷史。
它常用於撤銷修改,同時保持專案的過去完整。
在共享倉庫中撤銷更改時,此命令比git reset更安全。
要點
在使用git revert 命令之前,您應該記住一些要點
在執行命令之前,確保我們的工作區是乾淨的。
使用git reset --hard 刪除未提交的更改,並使用git restore --source 從較早的提交中恢復某些檔案。
這兩個選項都將刪除我們目錄中任何未提交的工作。
語法
git revert <commit>
選項
git revert 命令具有以下選項
<commit>…
<commit> 指示您希望回退的提交。
您可以在一次操作中提及多個提交進行回退。
使用git-rev-list 以及--no-walk 選項允許我們遍歷提交集,這在預設情況下不會執行。
-e
--edit
在完成回退之前,您可以使用git revert 命令中的-e 或--edit 選項更改提交訊息。
在使用終端執行命令時,預設情況下啟用此選項。
您可以根據需要更改回退提交訊息。
-m parent-number
--mainline parent-number
在 Git 中,-m parent-number 選項指示合併提交的父級,在合併回退的情況下用作主線。
您可以透過選擇父級編號(從 1 開始)來指定哪一側的合併用作撤銷修改的參考。
透過從回退合併的祖先中刪除更改,回退合併提交實際上會丟棄在該合併期間所做的更改。
這可能會影響後續合併。
--no-edit
當在git revert 命令中使用--no-edit 選項時,Git 不會開啟提交訊息編輯器。
使用此選項時,Git 會回退到自動生成的提交訊息。
無需使用者輸入或修改。
--cleanup=<mode>
在提交更改之前,Git 會根據--cleanup=<mode> 選項格式化和清理提交訊息。
您可以將<mode> 設定為您想要的任何值,例如scissors,這會在發生衝突的情況下向MERGE_MSG 新增scissors 行。
-n
--no-commit
使用 Git,您可以將回退更改應用於我們的工作區和索引,而無需生成提交,方法是使用-n 或--no-commit 選項。
這使您可以在最終確定更改之前檢視或編輯更改,並依次回退多個提交。
-S[<keyid>]
--gpg-sign[=<keyid>]
--no-gpg-sign
使用-S[<keyid>] 或--gpg-sign[=<keyid>] 選項使用 GPG 金鑰對提交進行簽名。
您可以省略<keyid> 引數,但如果您這樣做,它必須緊跟在選擇之後,中間沒有空格,並且它表示要使用哪個 GPG 金鑰。
如果未指定金鑰,則預設使用提交者的身份金鑰。
當使用--no-gpg-sign 選項(停用提交的 GPG 簽名)時,任何允許自動簽名的全域性設定或任何先前使用的--gpg-sign 選項都將被覆蓋。
-s
--signoff
當使用-s 或--signoff 選項時,提交訊息將以Signed-off-by 行完成。
此行通常用於遵守專案中的貢獻要求,包含提交者的姓名和電子郵件地址,並表明他們對更改承擔責任。
--strategy=<strategy>
使用--strategy=<strategy> 選項指定合併分支時要使用的合併策略。
Git 使用此選項來確定如何解決衝突以及如何合併來自不同分支的更改,因此您應該每個合併命令只使用一次。
-X<option>
--strategy-option=<option>
您可以使用-X<option> 或--strategy-option=<option> 選項為正在使用的合併策略提供額外的、特定於策略的引數。
這使您可以根據所選策略的選擇對合並的執行進行細粒度的控制。
--rerere-autoupdate
--no-rerere-autoupdate
透過使用--rerere-autoupdate 選項,Git 可以使用記錄的衝突解決結果自動更新索引。
在手動將解決方案新增到索引之前,您可以使用--no-rerere-autoupdate 在工作區中檢視並確認它。
--reference
透過以更簡潔的方式引用原始提交,--reference 選項更改回退提交的日誌訊息正文。
--pretty=reference 格式指定較短的引用格式,該格式用於替換預設訊息格式This reverts <full-object-name-of-the-commit-being-reverted>。
此行為可以透過使用revert.reference 配置設定設定為預設值。
總而言之,git revert 命令建立一個新的提交來撤銷先前提交的更改。在共享倉庫中使用它是安全的,因為它不會更改提交歷史。上面提到的選項提供了更大的靈活性,例如在不提交的情況下回退和處理合併提交。