Intellij IDEA git 插件新的push逻辑

最近升级了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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Git学习总结的命名 初始化一个Git仓库。 添加文件到Git仓库步骤分两步:使用命令git add <fil...
    Cheriez阅读 3,265评论 0 1
  • Add & Commit git init 初始化一个 Git 仓库(repository),即把当前所在目录变成...
    冬絮阅读 10,404评论 0 9
  • 真的,我长大了,不再喜欢那些吊儿郎当的男孩子了
    人土土欸阅读 1,211评论 0 0
  • 大家好,我是吉叔。初入简书,求关注,求推荐,求打赏!本期带给大家的是一个Q版新娘的教程,不需要什么工具,只需要一台...
    Js_吉叔阅读 6,612评论 2 12
  • 《爱的五种语言》 P66-67 精心的会话 请写出你的: 【I】…… 婚姻关系中,我们需要学习倾听。(what) ...
    杜世龙阅读 1,648评论 2 1

友情链接更多精彩内容