一、git commit --amend
场景:提交完发现还有文件没添加,或者还有bug,或者信息写错
说明:这样可以不用为了一个小问题多一条提交记录,也可以达到原子提交的原则。
二、merge和rebase
merge示例:
git checkout master
git merge hotfit
切换到master分支,将hotfit分支内容合并到master上面
rebase示例:
git checkout hotfit
git rebase master
git checkout master
git merge hotfit
先切换到hotfit分支,将主分支修改的记录使用rebase应用到当前hotfit分支中;然后切换到master分支,在把hotfit分支合并到master分支中;
优点:变基使得提交历史更加正解,历史就跟串行一样,在一条线上没有分叉;
当有工作在其他分支开发,开发完之后想要合并到主分支,如果让主分支主动合并,有可能主分支需要做一些合并解决冲突的工作;而如果是在分支上先变基主分支,那么到时主分支的合并将会只是一次简单的快进合并。
三、git branch --no-merged查看未合并的分支
四、变基的一些用法
1、git rebase --onto master server client
将从master开支出来的server分支出来的client,变基master上的变化应用到client分支上。可以跳过server直接做变基动作。
2、
git checkout server
git rebase master server
== git checkout server
git rebase master
git checkout master
git merge server
3、原则:只对尚未推送和分享给别人的本地修改执行变基操作清除历史,从不对已推送至别处的提交执行变基操作。
五、回滚提交
git