git revert 指令
反悔,新增一筆反向的送交紀錄
使用情境
- 修正已經發佈的送交紀錄,新增一個反向的 rollback 送交紀錄。
常用範例
範例 | 說明 |
---|---|
git revert HEAD | 回到前一次 commit 的狀態 |
git revert HEAD --no-edit | 不編輯 commit 訊息 |
🤔 取消 revert? 可以直接使用
git reset HEAD^ --hard
情境題:什麼時候用 reset,什麼時候用 revert?
Reset
- 適合用在還未發佈的 commit,就像鉛筆一樣,看不到修正的蹤跡。
- 直接修改舊的送交歷史紀錄,不會多增加一個新的節點。
Revert
- 適合用在已發佈的 commit,就像立可白一樣,雖然修正了錯字,但還是會留下修正的蹤跡。
- 回到指定的 commit 節點的前一個節點的狀態,執行完畢後會新增一個 commit 節點。
練習題:反悔一個已經發佈的送交紀錄
git revert HEAD
git log --oneline
語法結構
usage: git revert [<options>] <commit-ish>...
or: git revert <subcommand>
--quit end revert or cherry-pick sequence
--continue resume revert or cherry-pick sequence
--abort cancel revert or cherry-pick sequence
-n, --no-commit don't automatically commit
-e, --edit edit the commit message
-s, --signoff add Signed-off-by:
-m, --mainline <n> parent number
--rerere-autoupdate update the index with reused conflict resolution if possible
--strategy <strategy>
merge strategy
-X, --strategy-option <option>
option for merge strategy
-S, --gpg-sign[=<key-id>]
GPG sign commit