- <span style="font-size:18px;">git checkout -b lab4 origin/lab4
- git merge lab3</span>
執行上面2條命令是創建一個新的本地分支lab4,並且將分支origin/lab4的內容放到新分支lab4中,最后將本地lab3分支的內容合並到新創建的本地lab4分支中。
合並過程中若出現沖突,比如:
- <span style="font-size:18px;">Auto-merging lib/syscall.c
- Auto-merging lib/printfmt.c
- Auto-merging kern/trapentry.S
- Auto-merging kern/trap.c
- CONFLICT (content): Merge conflict in kern/trap.c
- Auto-merging kern/syscall.c
- Auto-merging kern/pmap.c
- CONFLICT (content): Merge conflict in kern/pmap.c
- Auto-merging kern/init.c
- CONFLICT (content): Merge conflict in kern/init.c
- Auto-merging kern/env.c
- CONFLICT (content): Merge conflict in kern/env.c
- Auto-merging kern/console.c
- CONFLICT (content): Merge conflict in kern/console.c
- Automatic merge failed; fix conflicts and then commit the result.
- </span>
我們需要消除沖突,手動消除沖突的方法:
1. 打開編輯沖突的文件,kern/trap.c,對於形如這樣的沖突結構進行處理:
- <span style="font-size:18px;">hello
- <<<<<<< HEAD
- world
- =======
- hadoop
- >>>>>>> lab3
- next</span>
介於 <<<<<<<(七個‘<’) HEAD 和 ======= 的內容是lab4中原有的內容:world
介於 ======= 和 >>>>>>> lab3 的內容是lab3中原有的內容:hadoop
這樣標記表示 將lab3中的內容整合進lab4中的過程中,上述標記的2塊內容會發生沖突,解決辦法就是我們手動編輯去掉沖突,即先編輯沖突,然后git commit提交。
注:對於git來講,編輯沖突跟平時的修改代碼沒什么差異。修改完成后,都是要把修改添加到緩存,然后commit。