假设有个场景,A 和 B 都需要 push 代码到 origin 的 master 上,A 和 B 拉取的代码后,新建了本身的分支进行修改,并要提交到 master 上;
此时 A 的修改内容先提交到 origin 上;
那么 B 在提交前需要拉取最新的代码(包含 A 的修改的代码 D),此时 B 有两个选择:
可以避免这种菱形提交,会将 B 的提交 rebase 到最新 master 节点上,此时可能会遇到的题目是,如果 B 的提交和 A 的提交有交集的地方,会引起冲突。如果这种环境,会提示你先办理冲突 conflict,需要 B 去比较与 A 的提交冲突的地方,办理完冲突之后,add 更新下 B 的修改后,执行:
git rebase --continue
复制代码
就可以继续 pull -r 的过程;过程中如果觉得有任何操作失误,可以利用:
git rebase --abort
复制代码
随时停止 pull rebase 的过程,并且分支会回到 rebase 开始前的状态。
7. 将分支 A 的修改提交到分支 B
偶然候我们可能需要将分支 A 上做的一些修改直接提交到分支 B 上,先切换到分支 B,提前 git log
看下分支 A 上需要的节点号是多少,利用: