获取原始回购';我的叉子在Git中的一个分支是Master

获取原始回购';我的叉子在Git中的一个分支是Master,git,github,Git,Github,我熟悉git的基础知识,但不熟悉高级知识,我在这里有点迷茫。当我在命令行上执行签出、提交和克隆时,我诚实地使用githubui与其他repo进行分叉和合并 所以我的问题是:不久前我克隆了一个回购协议,我们称之为上游回购协议,并做了一些更改。让我们调用我的fork下游。我将代码作为拉取请求提交,但上游不希望进行更改。哦,好吧,现在我为自己和其他一些想要我添加的功能的用户维护下游。我不时地将更改从上游/master拉到Donwstream/master 现在,我想在上游上做更多的工作,并再次将我的更

我熟悉git的基础知识,但不熟悉高级知识,我在这里有点迷茫。当我在命令行上执行签出、提交和克隆时,我诚实地使用githubui与其他repo进行分叉和合并

所以我的问题是:不久前我克隆了一个回购协议,我们称之为上游回购协议,并做了一些更改。让我们调用我的fork
下游。
我将代码作为拉取请求提交,但
上游
不希望进行更改。哦,好吧,现在我为自己和其他一些想要我添加的功能的用户维护
下游
。我不时地将更改从
上游/master
拉到
Donwstream/master

现在,我想在
上游
上做更多的工作,并再次将我的更改作为请求提交给他们。但是,我的
主机
有他们已经说过不想要的更改,所以我想将他们的
主机
重新分支到
下游
上的一个新分支(即,
下游/上游主机
)。我该怎么做

  • 如果您的存储库当前没有上游远程服务器,
    git-remote-add-upstreamhttps://github.com/Foo/Bar.git
    然后
    git-fetch-upstream
  • 从上游获取代码:
    git checkout上游/master
  • 创建一个新的本地分支,指向您刚刚签出的代码:
    git checkout-b upstream master
  • [可选]Cherry将你的作品从你的旧树枝上挑到你刚做的树枝上<代码>git cherry pick abc123

  • 为了简单起见,我将它们作为单独的命令保留,但可能有一种方法可以将它们组合成一个命令

    前两个可以组合为
    git checkout-b上游主控上游/master
    。谢谢。对于将来遇到此问题的任何人,在执行上述操作之前,您需要执行以下操作:
    git remote add upstreamhttps://github.com/Foo/Bar.git
    然后
    git-fetch-upstream
    @mkasberg,你能把它添加到你的答案中吗?:)作为第一步添加。