从master分支拷贝一个新分支,命名为fixBug。
修改若干文件后,做了第一次提交,提交描述为:提交描述1。
修改若干文件后,做了第二次提交,提交描述为:提交描述2。
此刻,想看看有哪些提交是fixBug分支上有,而master分支上没有的:
$ git log fixBug ^master
commit 693f162e7b8f99ef9b15db4ff16c6f5870e5b7f9 (HEAD -> fixSSo)
Author: zhangsan <zhangsan@xxx.com>
Date: Wed Feb 24 20:12:35 2021 +0800
提交描述2。
commit 96246b73502661ce3db73122c6152fb886aeb107
Author: zhangsan <zhangsan@xxx.com>
Date: Wed Feb 24 20:07:21 2021 +0800
提交描述1。
想看看有哪些提交是master分支上有,而fixBug分支上没有的:
$ git log master ^fixBug
可见,在fixBug分支上开发期间,master分支上没有新的提交。
如果上述命令有返回值,就说明别人已经向master分支有提交,应该尽早将这些提交内容merge到当前分支,即fixBug分支。
最佳实践,master分支不要给开发人员权限,而是交给持续集成(Continuous Integration,CI)工具,这样能防止发生低级错误。例如,fixBug分支开发、测试完毕了,使用CI工具准备上线。上线前,CI工具可以通过Shell脚本等进行如下校验:有哪些提交是master分支上有,而fixBug分支上没有的。如果有,那就停止上线,提示用户:fixBug分支没有包含master分支上所有的提交,需要进行merge操作,否则就有功能遗漏。