gpt4 book ai didi

git - 如果我可以提出中间提交,如何将 Git 提交拆分为两个?

转载 作者:行者123 更新时间:2023-12-01 09:41:38 24 4
gpt4 key购买 nike

对大型代码库进行了更改,然后应用了格式化程序,几乎涉及每个文件。

A --------- B

单次提交 B将这两个操作结合起来会导致巨大的差异,这很难审查,而且也很难通过交互式 rebase 手动拆分并挑选出大块头。但是,我可以轻松地设计一个中间提交 I通过 checkout A并在其上运行代码格式化程序。
A --------- B
\
\
-- I

鉴于我刚刚提交了 I ,如何轻松生成提交 B'最终得到与 B 完全相同的树内容?
A --------- B
\
\
-- I --- B' # (has exact same contents as B)

如果我天真地做
git checkout B
git rebase I

我最终遇到了很多冲突。我根本不想变得聪明,我只想最终在与 B 完全相同的目录中,假设 I..B diff 将大大小于 A..B .

最佳答案

好的,如果你已经有了 I 和 B,你可以这样做:

git checkout --detach B
git reset --soft I # move branch pointer (HEAD pointer, in this case) to I, set all differences in index ready to be committed
git commit -m "blah blah"

现在,如果您喜欢结果,您可以将任何分支指向您所在的位置:
git branch -f blah
git checkout blah

关于git - 如果我可以提出中间提交,如何将 Git 提交拆分为两个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59654797/

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