git rebase 测试
当前在xxx分支上,然后执行rebase命令 master分支
1 | git rebase master |
可以理解为将xxx分支上的改动抽出来弄成一坨,然后将master分支的代码弄到xxx分支这边来,然后再将刚刚弄出来的代码堆上去,就像这一坨代码是接在master分支的末尾上写的一样,这样你再回到master将这一堆代码merge过来,提交日志就不会分叉,看提交日志就特别清晰明了。
如果这一坨代码中有多个提交,不想要这么多的提交记录,就要加一个-i参数
1 | git rebase -i B |
就会让你挑选你想要的提交
……
不想写了
……
从master 检出 dev,然后分别修改 master 和 dev,然后 合并
1 | git init |
会导致提交日志里面出现分叉的merge信息,比较难看
1 | $ git log --graph --pretty=oneline |
使用 rebase 后
1 | $ git rebase master |
1 | $ git log --oneline --graph |
在 rebase 的过程中,也许会出现冲突 conflict 。在这种情况, git 会停止 rebase 并会让你去解决冲突。在解决完冲突后,用 git add 命令去更新这些内容。
注意,你无需执行 git-commit,只要执行 continue
1 | git rebase --continue |
这样 git 会继续应用余下的 patch 补丁文件。
在任何时候,我们都可以用 –abort 参数来终止 rebase 的行动,并且分支会回到 rebase 开始前的状态。
1 | git rebase —abort |
切回master分支,并进行合并
1 | $ git checkout master |
rebase有冲突时
处理完冲突后,添加文件到暂存区
1 | git add/rm <conflicted_files> |
然后再继续
1 | git rebase --continue |
也可以跳过这次提交
1 | git rebase --skip |
要中止并回到“git rebase”之前的状态,请运行
1 | git rebase --abort |