gpt4 book ai didi

git - 选择要与 master merge 的提交

转载 作者:太空狗 更新时间:2023-10-29 14:43:49 25 4
gpt4 key购买 nike

假设我的 master 分支中有一个 buggy 函数:

def foo(x):
return 1/x
git commit -a -m "foo is created"

我创建了一个名为 bug 的新分支来调试它。

git checkout -b bug

我创建了一些用于调试的打印语句,并提交:

def foo(x):
print x
return 1/x
git commit -a -m "print statements are added for debugging"

终于修复了bug。

def foo(x):
print x
if x == 0:
return None
return 1/x
git commit -a -m "foo bug is fixed"

现在我想用 masterbug 分支上的第二次提交 rebase ,但我不想添加打印语句(即第一次提交) ,所以我按如下方式使用交互式 rebase :

git rebase -i master

drop b2296f0 printing
pick 62beaa8 fixed

并且只选择第二个提交(即错误修复),但是我遇到了这个冲突:

def foo(x):
<<<<<<< HEAD
=======
print x
if x == 0:
return None
>>>>>>> 62beaa8... fixed
return 1/x

有没有办法让 git 获得正确的版本,而无需我手动删除所有调试打印语句?

最佳答案

您的 checkout 和 rebase 目标应该相反。 rebase 命令可以用措辞表达为“从我的当前位置展开到指定的提交”。

此外,由于您已经在功能/错误修复分支上,您可以忽略 checkout ,而只是这样做

git rebase -i master

并选择/压缩/修复所需的提交。完成后,您可以 merge :

git checkout 大师
git merge 错误

如果您希望分支保留在 git 树中,您可以使用特定的 merge 提交 merge (而不是快进):

git merge --no-ff bug

关于git - 选择要与 master merge 的提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40657577/

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