設定與配置
取得與建立專案
基本快照
分支與合併
分享與更新專案
檢查與比較
修補
除錯
電子郵件
外部系統
伺服器管理
指南
管理
底層命令
- 2.44.1 → 2.47.0 無變更
-
2.44.0
02/23/24
- 2.43.1 → 2.43.5 無變更
-
2.43.0
11/20/23
- 2.39.1 → 2.42.3 無變更
-
2.39.0
12/12/22
- 2.38.1 → 2.38.5 無變更
-
2.38.0
10/02/22
- 2.37.1 → 2.37.7 無變更
-
2.37.0
06/27/22
- 2.30.1 → 2.36.6 無變更
-
2.30.0
12/27/20
- 2.27.1 → 2.29.3 無變更
-
2.27.0
06/01/20
- 2.23.1 → 2.26.3 無變更
-
2.23.0
08/16/19
- 2.22.1 → 2.22.5 無變更
-
2.22.0
06/07/19
- 2.10.5 → 2.21.4 無變更
-
2.9.5
07/30/17
- 2.8.6 無變更
-
2.7.6
07/30/17
-
2.6.7
05/05/17
- 2.1.4 → 2.5.6 無變更
-
2.0.5
12/17/14
概要
git revert [--[no-]edit] [-n] [-m <parent-number>] [-s] [-S[<keyid>]] <commit>… git revert (--continue | --skip | --abort | --quit)
描述
給定一個或多個現有的提交,還原相關修補程式所引入的變更,並記錄一些新的提交來記錄它們。這需要你的工作樹是乾淨的(沒有來自 HEAD 提交的修改)。
注意:git revert 用於記錄一些新的提交,以反轉先前某些提交(通常只有一個錯誤的提交)的效果。如果你想要捨棄工作目錄中所有未提交的變更,你應該查看 git-reset[1],特別是 --hard
選項。如果你想要提取特定檔案,如同它們在另一個提交中的狀態,你應該查看 git-restore[1],特別是 --source
選項。請注意這些替代方案,因為兩者都會捨棄工作目錄中未提交的變更。
請參閱 git[1] 中的「Reset、restore 和 revert」,了解三個命令之間的差異。
選項
- <提交>…
-
要還原的提交。有關拼寫提交名稱的更完整清單,請參閱 gitrevisions[7]。也可以給定提交集合,但預設情況下不會執行遍歷,請參閱 git-rev-list[1] 及其
--no-walk
選項。 - -e
- --edit
-
使用此選項,git revert 會讓你編輯提交訊息,然後再提交還原。如果你從終端機執行命令,這是預設值。
- -m 父代編號
- --mainline 父代編號
-
通常你無法還原合併,因為你不知道應該將合併的哪一側視為幹線。此選項指定幹線的父代編號(從 1 開始),並允許還原反轉相對於指定父代的變更。
還原合併提交會宣告你永遠不想要合併帶來的樹狀變更。因此,後續合併只會帶入由非先前還原合併之祖先的提交所引入的樹狀變更。這可能符合或不符合你的需求。
請參閱 revert-a-faulty-merge 操作指南 以取得更多詳細資訊。
- --no-edit
-
使用此選項,git revert 不會啟動提交訊息編輯器。
- --cleanup=<模式>
-
此選項決定提交訊息在傳遞給提交機制之前將如何清理。請參閱 git-commit[1] 以取得更多詳細資訊。特別是,如果 <模式> 的值為
scissors
,則在發生衝突的情況下,scissors
將附加到MERGE_MSG
,然後再傳遞。 - -n
- --no-commit
-
通常,命令會自動建立一些提交,並附帶說明哪些提交被還原的提交記錄訊息。此旗標會將還原命名提交所需的變更套用到你的工作樹和索引,但不會建立提交。此外,當使用此選項時,你的索引不必與 HEAD 提交相符。還原會根據你的索引的起始狀態執行。
當連續將多個提交的效果還原到你的索引時,此選項很有用。
- -S[<金鑰 ID>]
- --gpg-sign[=<金鑰 ID>]
- --no-gpg-sign
-
GPG 簽署提交。
keyid
引數是可選的,預設為提交者身分;如果指定,它必須緊接著選項,不加空格。--no-gpg-sign
可用於反駁commit.gpgSign
配置變數,以及先前的--gpg-sign
。 - -s
- --signoff
-
在提交訊息的結尾新增
Signed-off-by
尾碼。有關更多資訊,請參閱 git-commit[1] 中的 signoff 選項。 - --strategy=<策略>
-
使用給定的合併策略。應只使用一次。有關詳細資訊,請參閱 git-merge[1] 中的合併策略區段。
- -X<選項>
- --strategy-option=<選項>
-
將合併策略特定的選項傳遞給合併策略。有關詳細資訊,請參閱 git-merge[1]。
- --rerere-autoupdate
- --no-rerere-autoupdate
-
在 rerere 機制重複使用目前衝突的已記錄解決方案來更新工作樹中的檔案後,允許它也使用解決方案的結果更新索引。
--no-rerere-autoupdate
是一個很好的方法來仔細檢查rerere
的執行動作,並在將結果使用單獨的git add
提交到索引之前,捕獲潛在的合併錯誤。 - --reference
-
不要以「This reverts <full-object-name-of-the-commit-being-reverted>.」開始記錄訊息的主體,而是使用「--pretty=reference」格式(參見 git-log[1])參考提交。可以使用
revert.reference
配置變數來預設啟用此選項。
討論
雖然 Git 會自動建立基本的提交訊息,但強烈建議解釋為什麼要還原原始提交。此外,重複還原還原將導致越來越難以處理的主旨行,例如 Reapply "Reapply "<原始主旨>""。請考慮將這些重新措辭為較短且更獨特。
配置
此區段中此行下方的所有內容都是從 git-config[1] 文件中選擇性包含的。內容與其中找到的內容相同
GIT
git[1] 套件的一部分