gpt4 book ai didi

大重构后的 git rebase

转载 作者:太空狗 更新时间:2023-10-29 14:16:04 26 4
gpt4 key购买 nike

我有 2 个分支,master 和 featureA。在 featureA 分支中,我在 CoolFile.m 中编写了一堆新代码。该功能尚未完成,因此此代码尚未准备好 merge 到 master 中。CoolFile 过去写得非常糟糕,所以在开发分支中,我对它进行了一系列更改(主要是重新排序方法、添加注释和删除空格)。

现在我想从 master 中 rebase featureA,这样我就可以从清理后的代码中受益。问题在于,由于所有方法都已移动,rebase 试图将所有新代码放在错误的位置。解决此问题的最佳方法是什么?我应该等到功能完成再重构吗?

最佳答案

您可以将 master 分支中的更改 merge 到您的 featureA 分支中,

A--B--F--G--H master
\
\-C--D--E featureA

假设您从 master 上的提交 B 创建了 featureA,并且 C、D 和 E 是对 featureA 所做的提交,而 F 和 G 是重新排序方法等的提交。您现在要做的是 merge F和 G 进入 featureA 分支。

$ git checkout featureA
$ git merge G (G is the sha1)

或者,您可以挑选提交 F 和 G 到 featureA 中。请记住,您仍然会遇到冲突,而这些只是您的 rebase 选项的替代方案。

将来我建议您直接在 featureA 上或从另一个分支(从 featureA 分支出来)进行重构:

A--B--F--G--H master
\
\-C--D--E featureA
\
\-I--J--K refactorFeatureA

然后将重构分支 merge 到 featureA 中是小菜一碟,因为 merge 是微不足道的。

关于大重构后的 git rebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181099/

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