我认为关于标准 git/github 工作流程的问题。但我真的非常了解所有这些东西。
- 一个月前,我分叉了一些项目。
- 我用我需要的改变做了我的分支
- 原来的项目已经改变了
- 我想 fork 新版本并添加我对以前版本所做的更改
我该怎么做?我遇到的问题:
1)我不能fork新版本,当我按fork github将我重定向到我当前的新版本fork时,我是否必须删除它才能拥有新版本?
2)是否有可能以某种自动方式应用我对以前版本所做的更改?
我认为你只需要获取上游。
$ 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
到指向原始用户的存储库。然后我可以在需要时引入上游更改。