gpt4 book ai didi

Git - 如何从原点删除工作,但稍后从另一个分支 merge 回来?

转载 作者:太空狗 更新时间:2023-10-29 13:21:27 26 4
gpt4 key购买 nike

我有一个 master 分支,里面有很多不会发布的特性。我被要求从 master 中删除这些功能并创建一个包含它们的新分支,以便我们稍后可以 merge 回 master。

我采取的步骤是:

  1. 在 master 上创建一个名为“NewFeatures”的新分支
  2. 回到 master,删除所有有问题的代码(几个月的提交,数百)手
  3. 将删除提交给 master

期望我会继续致力于“NewFeatures”并定期将 master merge 到“NewFeatures”中,这样​​当我重新 merge 时,它是无缝的。

现在,当我想让“NewFeatures”与 master 保持同步时,master 想要删除 NewFeatures 中的所有代码。

我的问题是,用 Git 完成“从 master 中删除一堆功能并将它们放入另一个分支以供以后 merge ”的正确方法是什么?

更新感谢您的回复。我制作了一张图表,希望能够解释事情。最大的问题是,在第一次从 main merge 到 feature(第二行的第一个 xy)时,主分支想要删除所有 y,因为我删除了所有 y。

- y - x - y -(删除 y)- x - x -(释放 x)-x - x - xy - xy - xy -(释放 xy)
\\\/
y - y - y - y - y - xy - y - y - xy -(完成)

更新 2我最终将分支移动到刚从 main 中删除 NewFeature 之后(但我已经复制了删除的文件),然后将删除的文件复制回来。这样,main 可以 merge 到 NewFeature 而不会杀死东西,并且 NewFeature 可以 merge 回去进入 main 没有问题。我失去了一些提交日志跟踪,但它似乎比接下来三天的 cherry-picking 文件要好。

下面的帮助似乎是正确的方法,但这种方法对我来说似乎已经足够了(讨论使我最终采用了这种方法,所以谢谢大家)。

谢谢,布莱恩

最佳答案

我相信您需要做的是从现有的 master 分支创建两个分支。一个只包括应该进入 master 的提交,另一个只包括包含 new-feature 工作的提交。

我制作了一个快速图表来说明我的意思。目前你有这样的东西(顶部的最新提交):

*   - Master work
|
* - New feature work
|
* - Master work
|
* - New feature work
|
* - Master work
|
* - New feature work
|
* - Common commit

你需要到达这里:

*       - Master work
|
| * - New feature work
| |
* | - Master work
| |
| * - New feature work
| |
* | - Master work
| |
| * - New feature work
| /
|/
* - Common commit

重要的是不要在您的两个分支之间重复任何提交,因为这可能会在您稍后 merge 时导致问题。

您可以使用 git rebase 来实现这一点,但是如果您说您有数百个提交,那么您就没有好时机,因为您必须单独审查每个提交。

关于Git - 如何从原点删除工作,但稍后从另一个分支 merge 回来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43770912/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com