用git rebase合併
阿新 • • 發佈:2018-12-29
合併issue3分支的時候,使用rebase可以使提交的歷史記錄顯得更簡潔。
現在暫時取消剛才的合併。
$ git reset --hard HEAD~
切換到issue3分支後,對master執行rebase。
$ git checkout issue3 Switched to branch 'issue3' $ git rebase master First, rewinding head to replay your work on top of it... Applying: 新增pull的說明 Using index info to reconstruct a base tree... <stdin>:13: new blank line at EOF. + warning: 1 line adds whitespace errors. Falling back to patching base and 3-way merge... Auto-merging myfile.txt CONFLICT (content): Merge conflict in myfile.txt Failed to merge in the changes. Patch failed at 0001 新增pull的說明 When you have resolved this problem run "git rebase --continue". If you would prefer to skip this patch, instead run "git rebase --skip". To check out the original branch and stop rebasing run "git rebase --abort".
和merge時的操作相同,修改在myfile.txt發生衝突的部分。
連猴子都懂的Git命令 add 把變更錄入到索引中 <<<<<<< HEAD commit 記錄索引的狀態 ======= pull 取得遠端資料庫的內容 >>>>>>> issue3
rebase的時候,修改衝突後的提交不是使用commit命令,而是執行rebase命令指定 --continue選項。若要取消rebase,指定 --abort選項。
$ git add myfile.txt $ git rebase --continueApplying: 新增pull的說明
這樣,在master分支的issue3分支就可以fast-forward合併了。切換到master分支後執行合併。
$ git checkout master Switched to branch 'master' $ git merge issue3 Updating 8f7aa27..96a0ff0 Fast-forward myfile.txt | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
myfile.txt的最終內容和merge是一樣的,但是歷史記錄如下。
from: https://backlog.com/git-tutorial/cn/stepup/stepup2_8.html