git rebase(git extensions版)

    xiaoxiao2024-10-29  80

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

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

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

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

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

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

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

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

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

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

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

    注:

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

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

    最新回复(0)