Git 在Intellij的另一个分支上拉主控

Git 在Intellij的另一个分支上拉主控,git,intellij-idea,pull,Git,Intellij Idea,Pull,当我在分支上时,我想从master进行pull以获取最新版本的代码,然后我将分支重新设置到master上,然后将分支推送到服务器并创建pull请求 今天,我用下一种方式完成所有这些: 我在我的分支机构,我切换到主分支机构分支机构 切换后,打开master,我要么执行git pull,要么在Intellij中使用图形界面VCS->git->pull 我回到我的分支并执行重基 在rebase之后,我做了一个git push-f 我如何避免从我的分支机构切换到主分支机构并返回Intellij?有没

当我在分支上时,我想从
master
进行
pull
以获取最新版本的代码,然后我将分支重新设置到
master
上,然后将分支推送到服务器并创建pull请求

今天,我用下一种方式完成所有这些:

  • 我在
    我的分支机构
    ,我切换到
    主分支机构
    分支机构
  • 切换后,打开
    master
    ,我要么执行
    git pull
    ,要么在Intellij中使用图形界面
    VCS->git->pull
  • 我回到
    我的分支
    并执行重基
  • 在rebase之后,我做了一个
    git push-f

我如何避免从
我的分支机构
切换到
主分支机构
并返回Intellij?有没有办法将
主机
拉到另一个分支上的
主机

假设您提到的主分支位于名为upstream的远程分支上,则在推送代码之前,您可以运行下面两个命令:

git-fetch
git重新设置上游/主数据库

如果未设置任何远程设备,则默认远程设备名称为origin,在这种情况下,命令为:

git-fetch
git重新基准源代码/主代码

git fetch不会更改任何本地分支,它只会提供服务器上存在的git信息


下面是一个相关的StackOverflow问题,您可能还想在有时间的时候看看:

我创建git alias正是为了解决这个问题。将其放入~/.gitconfig

[alias]
  update = "!fn() { \
    repo=${2:-origin}; \
    if [[ $(git rev-parse --abbrev-ref HEAD) = \"$1\" ]]; \
    then \
        git pull \"${repo}\"; \
    else \
        git fetch \"${repo}\" \"$1\":\"$1\"; \
    fi; \
    }; fn"

然后,您可以使用
git update master
更新本地master,而无需切换到它。或者,如果您的遥控器不是
origin
,而是
upstream
,您可以使用
git update master upstream
。Intellij呢,似乎没有现成的功能。

您的本地主机总是像远程主机一样?如果是这种情况,您可以将功能分支设置为跟踪远程主机而不是本地主机,然后您可以获取/rebase(或pull--rebase),而不必切换到本地主机来执行pull。是的,
master
是每个人的公共分支,我们创建新分支并合并回它。没有人在master上写东西(除了非常罕见的热修复程序)好吧…不需要保留本地master。。。事实上,你可以保留它。。。但您的功能分支(或其他分支)可以从远程主机启动,而不是从本地主机启动。然后,正如我在前面的评论中所解释的那样,您不需要切换到本地主机来在其上重新设置功能。