一、合并多次commit
背景:多人开发项目的时候,一般个人都会在主分支下开辟自己的分支下进行开发,大部分情况下,不可能一下子把需求写完,然后一次性提交,所以会分几次提交,对于个人开发可能没什么影响,但是在sourcetree上显示太多提交记录显然是不好的,尽量在需求代码写完时只显示一次提交是最好的,所以合并多次commit是必要的。
1、找到最近一次远程提交记录
2、选择右键将当前分支重置到这次提交
3、当前所有的本地提交已经回退到未提交状态
4、一次性提交
二、git rebase
背景:git rebase和git merge各有优缺点,但是由于为了Sourcetree线条看起来流畅、美观,所以用git rebase替代了git merge。
1、在自己当前已经完成所有代码编写的分支上,提交到本地。(这一步不建议推送到远程)
2、切换到主分支master(我这个用来测试的,大家可能是develop或者其他分支,问项目负责人),拉取最新代码。
3、切换回自己的分支,开始 git rebase
4、处理冲突(这步可能没有,看情况)
5、提交,继续 git rebase
有可能需要多次 git rebase,重复4,5就好了,为什么同一个文件需要处理多次冲突,多次变基?因为同一个文件被多人操作过,因为项目多人开发,所以这个现象经常有。
6、git rebase 结束 (成功)
三、总结Sourcetree 变基和命令行变基的优缺点
Sourcetree:Sourcetree 客户端操作起来清晰明了,很难出错,Sourcetree 发展到现在,命令可以实现,Sourcetree都可以实现。缺点就是不用命令,会生疏。
命令行:优点就是敲命令很舒服,缺点就是操作起来不直观,可能会出错。