gpt4 book ai didi

git - 在 git 中将双亲提交转换为单亲提交

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

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

7 个月前关闭。




Improve this question




哎呀!上次 merge 存储库中的两个分支时,我似乎做错了什么:

这与我的预期相去甚远。有没有办法安排这个烂摊子并获得如下内容?我做错了什么?

更新:
OP 中提到的图像目前不可用。

最佳答案

merge 提交应该有两个父级。这就是 merge 的全部意义所在。

如果您有充分的理由只想与一个父级 merge ,则可以使用 --squash选项:

# starting with branch-full-reordering at "Corrected GPU float measures"
git merge --squash branch-full-reordering-wo-auxarray-wo-diver
# go on to make the "improve performance commit"

但这很少是您想要的。它将在另一个分支上完成的所有工作转储到 merge 提交中,从而破坏历史记录。

但是,您描述的历史根本不是 merge , Squash 或其他。这是一个rebase。
# starting with branch-full-reordering at "Corrected GPU float measures"
git rebase branch-full-reordering branch-full-reordering-wo-auxarray-wo-diver
# go on to make the "improve performance commit"

在这种情况下,不会有 merge 提交 - 您只是将辅助分支移植(重新定位)到主要分支上。

我要再次强调:你最终得到的历史很可能就是你想要的。它记录了一些开发发生在一个侧分支上,然后被 merge 回的事实。

要修改您的历史记录以使其看起来像您想要的样子,您可以执行以下操作:
# recreate your topic branch
git branch topic <SHA1 of commit "Correct pesky bug">
# overkill: you could also specify that as branch-full-reordering^^2
# which means the second parent of the [first] parent of the branch tip

# rebase the topic branch like you meant to in the first place :)
# ~2 means two commits before
# you could also just use the SHA1 of commit "Corrected GPU float measures"
git rebase branch-full-reordering~2 topic

# rebase the main branch onto the topic
# the merge will be ignored, so this will just move the "Improve performance" commit
git rebase topic branch-full-reordering

# delete the topic branch
git branch -d topic

关于git - 在 git 中将双亲提交转换为单亲提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2913970/

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