- <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。