26

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

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

因此,每当对 originalproject 进行提交时,我都希望能够将它们拉下来并将它们与 myproject 合并。但是,我也希望能够将更改推送到 myproject 中,但在我的分支完成并经过测试之前,还不能立即创建拉取请求以将它们合并到 originalproject 中。最好的方法是什么?

编辑:默认情况下,当我为本地开发创建我的 github 分支的本地结帐/分支,然后向上推/拉更改时,这些更改只会影响我的个人分支。我从未从原始项目中得到任何更改。我该如何解决?

抱歉任何不正确的 git 术语。

4

2 回答 2

34

扩展其他答案,这些是我在 tsc-watch 的分叉上采取的步骤:

git remote add upstream https://github.com/gilamran/tsc-watch.git
git fetch upstream
git merge upstream/master
git push

解释:

  1. 将远程服务器添加为上游
  2. 从上游获取所有更改
  3. 将上游分支的更改合并到我的主分支
  4. 将所有更改推送到 github
于 2019-01-22T18:02:47.183 回答
9

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

git remote add upstream ...

然后你可以git fetch查看任何更改,然后 rebase/merge... 随便。

于 2012-12-11T20:52:49.197 回答