組合並移動提交
請前往您之前下载的git-tutorial/tutorial6
目錄。
當您檢查此儲存庫的歷史紀錄時,它將如下所示:
我們將修改附有append description of the commit command
訊息的提交。
為此,我們將使用 git rebase -i 指令。
$ git rebase -i HEAD~~
您預設的文本編輯器將開啟從 HEAD
到 HEAD~~
的清單提交,如下所示。
pick 9a54fd4 append description of the commit command
pick 0d4a808 append description of the pull command
# Rebase 326fc9f..0d4a808 onto d286baa
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash," but discard this commit log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
在第一行,將單詞pick
更改為edit
,然後儲存並退出。
您將看到以下輸出,並從該提交中退出。
Stopped at d286baa... append description of the commit command
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
開啟sample.txt
檔案,並進行如下所示的更改。
Anyone can learn Git with this tutorial and Backlog
add: Register a change in an index
commit: Record index state.
pull: Obtain the content of the remote repository
使用git commit --amend
來提交更改。
$ git add sample.txt
$ git commit --amend
然後執行git rebase --continue
完成 rebase 程序。
$ git rebase --continue
在您目前的分支上執行變基時,您可能會在您的更改中遇到衝突。若要繼續,您必須手動解決這些衝突,然後執行git add
和git rebase --continue
。無需發出新的提交來解決衝突。
但是,如果您想停止變基,您可以呼叫git rebase --abort
,這將 revert 並退出整個程序,且成功修改提交。
如果您在呼叫git rebase -i
時在多個行上指定edit
,系統將提示您一次修改一個提交。