Git-从Master上断开一段代码,使其成为分支
我有一个项目已经做了很长一段时间,但从未发布过。我有一个我开始使用的功能(多人游戏支持),然后我意识到我不想在版本1.0中包含它 我最近开始用git控制我的源代码。我在master上以“初始版本提交”的形式提交了我的全部源代码 我正在为每个流行的新特性结构使用分支 我想从“master”中删除多人游戏代码,并将其放入一个名为“multiplayer”的分支中。通过这种方式,我可以对v1.0进行所需的其余更改,在不使用任何多人游戏代码的情况下发布v1.0,然后在v1.0发布后,我可以重新设置我的多人游戏分支的基础,开始处理它,并将其包含在v2.0中 这是一个有点奇怪的问题,因为问题的出现是因为我在中途开始使用git对项目进行版本控制。我还没有在网上看到任何人提出解决这个问题的方法Git-从Master上断开一段代码,使其成为分支,git,Git,我有一个项目已经做了很长一段时间,但从未发布过。我有一个我开始使用的功能(多人游戏支持),然后我意识到我不想在版本1.0中包含它 我最近开始用git控制我的源代码。我在master上以“初始版本提交”的形式提交了我的全部源代码 我正在为每个流行的新特性结构使用分支 我想从“master”中删除多人游戏代码,并将其放入一个名为“multiplayer”的分支中。通过这种方式,我可以对v1.0进行所需的其余更改,在不使用任何多人游戏代码的情况下发布v1.0,然后在v1.0发布后,我可以重新设置我的多
我心里有个解决办法,但似乎很糟糕。我会把它贴在下面作为答案,但不会接受。希望有人能提供更好的答案。多谢各位 我提出的解决方案,但不喜欢:
我想这会管用的,但我觉得可能有更简单的方法。也许不是,因为问题的本质有点奇怪 差不多,但您不需要将代码复制到其他地方
- 从master
中,您现在有一个单独的分支,其中包含所有代码,但您仍然在master上git branch multiplayer
- 删除不需要的代码
- 承诺
- 当你想要的时候,重新设定多人游戏的基础
git签出主机
git checkout-b multiplayer
(这将根据您的主机为您的功能创建一个称为multiplayer的分支)- 如果您对此功能有明确的提交,则可以将其还原:git 还原您的哈希值
- 如果您对此功能有明确的提交,则可以从中删除它们 通过重新设定历史,你将不得不在:git之后用力推 rebase HEAD~x-ix是要检查的提交次数, 您可以删除一行来删除它,-i是交互式的
- 您应该执行清理提交并删除主机上的代码