【开发】Git处理分支的指令

merge
# 假设现在在dev分支
git checkout master
git merge dev

squash merge
$ git checkout master
$ git merge --squash dev

rebase merge
# git checkout dev
git rebase -i master # 暂存当前修改,pull master分支对应commit,释放修改:相当于修改分叉的起点
-i表示手动修改提交记录,例如对弹出来的内容进行如下修改:D2改为fixup
pick <D1> Message for commit #1
pick <D2> Message for commit #2
pick <D3> Message for commit #3
=>
pick <D1> Message for commit #1
fixup <D2> Message for commit #2
pick <D3> Message for commit #3

再merge
# 假设现在在dev分支
git checkout master
git merge dev

pull
是 git fetch + git merge 的组合命令:先拉取远程分支的最新代码(fetch),再将其合并到当前本地分支(默认用 merge 方式)
# 假设现在在dev分支
git pull origin master
会在dev分支上创建一个新commit节点,master上无新节点
git pull origin master --rebase
可以将 pull 的合并方式改为变基(即 git fetch + git rebase),既同步远程代码,又保持历史线性,适合个人分支使用
