虽然平时我们严格按照Git使用流程规范来使用管理分支,但为了保证分支的干净整洁,仍每隔一段时间来重新审视一下分支树。
有一天发现一个问题,我拉的分支居然没有父节点,再看tree Graph ,是无数的线.....如图
image.png image.png我拉分支的步骤是这样的:
- check到develop分支, git pull
- git checkout -b feature/split-fixBugOfLow
步骤没有问题,但是哪里出了问题呢
我去stackoverflow,segmentfault等都没有找到答案,但是我的leader是个非常擅长找不同并且逻辑特别强的人,leader就盯着分支看,终于发现了--------- 是时间的问题
image.png我拉的分支的提交,是bfbc92a
,实际上这个提交的parent是f1b97a40
,但是,在tree上面,f1b97a40
的提交(这次提交是我们直接在远程merge,直接提交了,所以时间是服务器时间)时间是下午7:42,bfbc92a
是在同一天的下午2:33,f1b97a40
比bfbc92a
更晚,是在 bfbc92a
的未来,所以这里就连不上线了
应该是gitlab的服务器时间和我本地的系统时间不一致导致的,问了下运维,我们git服务器上的时间果然有问题,做了自动时间同步的设置后就OK了,git tree Graph顿时好看多了。。。
总结:
- gitlab强行按时间排序,不考虑分支的结果
- 当本地系统时间和服务器时间不一致时,gitlab和sourcetree的处理方式不同,gitlab上就是一个孤点,sourcetree会拖一条线,一直拖到最后
网友评论