美文网首页
Intellij IDEA git 插件新的push逻辑

Intellij IDEA git 插件新的push逻辑

作者: lsnl8480 | 来源:发表于2018-04-10 19:41 被阅读585次

    最近升级了Intellij IDEA的最新版 2018.1版本。发现git插件的push的逻辑有了变更,适应了好大一会。

    旧的版本上,根据远程分支check out出一个本地分支时,git插件会自动设定本地分支的upstream branch,就像这样:


    image.png

    当我们提交代码的时候,由于master分支是被保护的,所以我们一般会先push到远程的一个分支上,然后再通过merge request将commit合到master分支里。

    Intellij IDEA人性化的记录了本地分支和远程分支的对应关系,当你再次push的时候,Push Commits dialog 自动的将远程分支设定成你上次push的分支,例如这样:


    image.png

    但是新的版本中这个特性没了:
    无论你push了多少次,每次新打开Push Commits dialog的时候,远程分支都显示的是upstream设定的分支。例如这样:


    image.png

    这是一个很影响效率的事情,我以为是他们出bug了呢,特意给Jetbrains提了一个bug:
    https://youtrack.jetbrains.com/issue/IDEA-189922

    得到的答案是:

    We actually reverted the behavior. 2018.1 and further will not remember the last branch but will behave like git push on the command line.
    So by default, it will select a branch depending on your git config settings.

    So if you want to push to some specific branches (different from default upstream) specify e.g git config remote.<name>.push refs/heads/LocalBranch:refs/heads/remoteBranch

    这就尴尬了,他们特意把这个特性删除了,有是一个开发人员替用户投票的惨案。

    吐槽也没用,想办法补救一下吧,按照他说的,在git上设定一个push的映射关系:
    git config remote.origin.push LocalBranch:remoteBranch

    设定好后,重新打开Push Commits dialog:


    image.png

    但是这样做有一个问题,只能设定一个分支的映射关系,
    如果我本地有多个分支的话,就不知道改怎么设置了,哪位清楚的话望告知。

    相关文章

      网友评论

          本文标题:Intellij IDEA git 插件新的push逻辑

          本文链接:https://www.haomeiwen.com/subject/scnnhftx.html