gpt4 book ai didi

Git:在其他分支中拆分提交

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

我有以下情况:

root -- A -- D ------------- H ------master
\ \ \
\ \ \
- B -- C -- E -- F -- G -- I -- J -- dev

提交“F”包含一个错误修正,起初似乎与 master 分支无关,但几周后证明它很重要。一切都已经提交并推送。

但另一个问题是“F”提交包含一些更改,其中只有一个与 master 相关。所以我想要的是:

  • 将 F 分成 2 个单独的提交(一个用于相关更改 [F1],另一个用于其他 [F2])
  • 将 F1 与 master merge

我不需要更改开发分支历史记录。

除了手动 diff + patch,我还能做些什么吗?

我想像

root -- A -- D ------------- H ---K--master
\ \ /-------\--/
\ \ /-F1-F2-\ \-----\
- B -- C -- E ------- F -- G -- I -- J -- dev

(对不起草率的线条艺术)

最佳答案

我会执行以下操作:首先使用 --no-commit cherry-pick 提交 F 到您的 master 分支,然后在 master 分支中暂存您需要的更改,放弃其他所有内容。我知道这听起来不像是完美的解决方案,但是当将 F merge 到 master 时,您还将获得 F 的所有祖先提交(来自开发分支:EC B):

git checkout master
git stash
git cherry-pick --no-commit F
git reset && git add -p
# alternatively reset already staged changes:
git reset -p
git commit
git reset --hard
git stash pop

关于Git:在其他分支中拆分提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7866968/

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