git rebase(git extensions版)

接触git快一年了,之前都不会rebase操作,最近刚刚学会了一点。

平时开发中推荐用rebase方式,只有涉及到分支合并的时候才会用merge操作(听别人讲的)。

接下来讲一种rebase操作方式:

1、可以先用stash方式缓存我们的没有commit的代码

stash

stash效果

可以看到commit的数量变成了0

2、用rebase方式拉取代码,因为我们stash了我们的本地改动,所以这样拉是肯定没有冲突并且一定会拉到最新代码

rebase pull

3、拉取之后,执行stash pop操作,就是将放到缓存区的文件拿出来,这个时候可能会有冲突,自行解决就好

stash pop

stash result

可以看到原来的文件又回来了,commit数量变为了1

4、commit代码并提交到对应分支上

至此,完成rebase操作,基本上可以看到一条直线的提交历史。

-------------------------------------------------------------------------------------------------

注:

1、stash操作放到缓存区是我个人看法,实际上有更准确的叙述方式

2、有时候不仅仅会出现本地的冲突,有时提交到远程以后,远程那边也会出现冲突,目前远程如果是用Gerrit,就有可能出现远程冲突,之前用gitlab没有这个问题,可能没有遇到。最常见的情景是两个人几乎同一时间提交了对同一个文件的改动,这样Gerrit就可能会提示有冲突,需要abandon掉这次改动,重复上述的rebase操作再提交代码。

发布了289 篇原创文章 · 获赞 44 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/spfLinux/article/details/90573335