在Git中从fork父级中提取更改

Cer*_*rin 14 git github

你如何从Git中的fork的父级中提取更改,特别是在github配置的项目中?

例如,假设我将http://github.com/originaluser/originalproject分成http://github.com/myuser/myproject.我不打算将myproject作为永久分支,因为我只想维护一个"dev"分支来测试一些实验性功能,然后最终将它合并回原始项目.

因此,每当提交原始项目时,我希望能够将它们拉下来并将它们与myproject合并.但是,我还希望能够将更改推送到myproject,但是还没有立即创建一个pull请求,以便将它们合并到originalproject中,直到我的分支完成并经过测试.最好的方法是什么?

编辑:默认情况下,当我为本地开发创建我的github fork的本地checkout/fork,然后推/拉更改时,这些更改只影响我的个人分叉.我从未对原始项目进行任何更改.我该如何解决这个问题?

对不起,任何不正确的git术语.

Jiř*_*šil 9

您可以将父存储库(上游)添加为另一个远程分支.就像是

git remote add upstream ...
Run Code Online (Sandbox Code Playgroud)

然后你可以只是git fetch来查看任何更改然后rebase/merge ...无论如何.

  • 克隆你的fork(myuser/myproject),cd进去,然后键入git remote add upstream https://github.com/originaluser/originalproject.git然后输入git fetch.之后,您应该拥有master(您的本地主分支),origin/master(您的remove master分支),最后是upstream/master(originalproject的master),您可以从中将更改提取到存储库中. (3认同)

Fra*_*ana 5

扩展其他答案,以下是我对tsc-watch进行的分叉操作的步骤:

git remote add upstream https://github.com/gilamran/tsc-watch.git
git fetch upstream
git merge upstream/master
git push
Run Code Online (Sandbox Code Playgroud)

解释:

  1. 将远程服务器添加为上游
  2. 从上游获取所有更改
  3. 将上游分支的更改合并到我的主分支
  4. 将所有更改推送到github