1. <span style="font-size:18px;">git checkout -b lab4 origin/lab4
  2. git merge lab3</span>

执行上面2条命令是创建一个新的本地分支lab4,并且将分支origin/lab4的内容放到新分支lab4中,最后将本地lab3分支的内容合并到新创建的本地lab4分支中。

合并过程中若出现冲突,比如:

  1. <span style="font-size:18px;">Auto-merging lib/syscall.c
  2. Auto-merging lib/printfmt.c
  3. Auto-merging kern/trapentry.S
  4. Auto-merging kern/trap.c
  5. CONFLICT (content): Merge conflict in kern/trap.c
  6. Auto-merging kern/syscall.c
  7. Auto-merging kern/pmap.c
  8. CONFLICT (content): Merge conflict in kern/pmap.c
  9. Auto-merging kern/init.c
  10. CONFLICT (content): Merge conflict in kern/init.c
  11. Auto-merging kern/env.c
  12. CONFLICT (content): Merge conflict in kern/env.c
  13. Auto-merging kern/console.c
  14. CONFLICT (content): Merge conflict in kern/console.c
  15. Automatic merge failed; fix conflicts and then commit the result.
  16. </span>

我们需要消除冲突,手动消除冲突的方法:

1. 打开编辑冲突的文件,kern/trap.c,对于形如这样的冲突结构进行处理:

  1. <span style="font-size:18px;">hello
  2. <<<<<<< HEAD
  3. world
  4. =======
  5. hadoop
  6. >>>>>>> lab3
  7. next</span>

介于 <<<<<<<(七个‘<’) HEAD  和 ======= 的内容是lab4中原有的内容:world

介于 ======= 和 >>>>>>> lab3 的内容是lab3中原有的内容:hadoop

这样标记表示 将lab3中的内容整合进lab4中的过程中,上述标记的2块内容会发生冲突,解决办法就是我们手动编辑去掉冲突,即先编辑冲突,然后git commit提交。

注:对于git来讲,编辑冲突跟平时的修改代码没什么差异。修改完成后,都是要把修改添加到缓存,然后commit。

05-11 20:30