我以为我的git很漂亮,但我对这个问题有点困惑.
这是图片:我将"开发"分支从一个项目分成我自己的github仓库,克隆到本地,创建了git-flow功能,做了一些东西并发布了.一切都很好.
与此同时,原始项目更改为新的开发分支(称之为'develop2'),因此我发布的功能无法进入主项目.
所以 - 建议 - 我创建了一个本地'develop2'分支,删除了我的本地'develop'分支,从主项目仓库中拉出'develop2',然后将其与我的本地功能合并.一切都很好,除了...我的个人github repo仍然有旧的'develop'分支和基于该分支的功能.
所以,我的问题是我现在该怎么办?我考虑过几个选项:
如果出现任何问题,我可能会不得不重做一大堆至少可以说很烦人的东西.来自大师的任何建议吗?
你绝对不需要重做东西——Git 完全可以处理这类问题。
首先,GitHub 上的分叉是整个存储库,因此删除您的“开发分叉”并不意味着任何事情 - 您只需将上游更改引入develop2您的分叉即可。我建议添加一个远程调用upstream,以便轻松地从我分叉的存储库中获取更改。
现在假设您添加了upstream, agit 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
Run Code Online (Sandbox Code Playgroud)
后:
H'--I'--J' develop2
/
X---Y---Z upstream/develop2
/
| H---I---J develop
| /
| E---F---G upstream/develop
|/
A---B---C---D
Run Code Online (Sandbox Code Playgroud)