1

我认为关于标准 git/github 工作流程的问题。但我真的非常了解所有这些东西。

  1. 一个月前,我分叉了一些项目。
  2. 我用我需要的改变做了我的分支
  3. 原来的项目已经改变了
  4. 我想 fork 新版本并添加我对以前版本所做的更改

我该怎么做?我遇到的问题:

1)我不能fork新版本,当我按fork github将我重定向到我当前的新版本fork时,我是否必须删除它才能拥有新版本?

2)是否有可能以某种自动方式应用我对以前版本所做的更改?

4

1 回答 1

4

我认为你只需要获取上游。

$ git remote add upstream git@github.com:original-user/project-name.git
$ git checkout master
$ git checkout -b merge-upstream
$ git fetch upstream
$ git merge upstream/master

此时,您在名为 的分支上拥有了新版本merge-upstream。如果一切仍然有效,您将希望将其合并到您的主人。

$ git checkout master
$ git merge merge-upstream

现在你master应该和原来的主人相处得很好。删除您的工作分支。

$ git branch -d merge-upstream

你现在有一个副本。因此,您可以针对新的master. 合并master到您的分支中进行测试。

$ git checkout my-feature
$ git merge master

您现在应该将原始用户主分支的所有更改合并到您的功能分支中。

PS:在做一个长期运行的项目时,我尽量确保原主不会比我领先一两天。事实上,我总是将远程添加upstream到指向原始用户的存储库。然后我可以在需要时引入上游更改。

于 2012-11-20T15:00:04.127 回答