我以为我的git很漂亮,但我对这个问题有点不知所措。
以下是图片:我将'develop'分支从一个项目分成我自己的github repo,克隆到本地,创建了git-flow功能,做了一些东西并发布了。一切都很好。
与此同时,原始项目改为新的开发分支(称之为'develop2'),因此我发布的功能无法进入主项目。
所以 - 建议 - 我创建了一个本地'develop2'分支,删除了我的本地'develop'分支,从主项目仓库中拉出'develop2',然后将其与我的本地功能合并。一切都很好,除了...... 我个人的github repo仍然有旧的'develop'分支和基于该分支的功能。
所以,我的问题是我现在该怎么办? 我考虑过几个选项:
如果出现任何问题,我可能会不得不重做一大堆至少可以说是令人厌烦的东西。 来自大师的任何建议吗?
答案 0 :(得分:3)
你绝对不需要重做东西--Git能够很好地处理这类问题。
首先,GitHub上的for是整个存储库,所以删除你的“'develop'fork”并不意味着什么 - 你只需要将上游develop2
更改带入你的fork。我建议添加一个名为upstream
的远程来轻松地从我分叉的存储库中获取更改。
现在假设您添加了upstream
,git fetch
应该将upstream/develop2
下拉到您的本地存储库中。我会撤消您的合并(可能是git reset --hard develop~
),从那里创建一个develop2
分支以保持一致性,然后将您的本地develop2
更改重新绑定到upstream/develop2
:git rebase --onto upstream/develop2 upstream/develop develop
。
在:
X---Y---Z upstream/develop2
/
| H---I---J develop, develop2
| /
| E---F---G upstream/develop
|/
A---B---C---D
后:
H'--I'--J' develop2
/
X---Y---Z upstream/develop2
/
| H---I---J develop
| /
| E---F---G upstream/develop
|/
A---B---C---D