gpt4 book ai didi

git 声明分支在 rebase 后未 merge - 为什么?

转载 作者:IT王子 更新时间:2023-10-29 01:29:56 28 4
gpt4 key购买 nike

我正在使用 git-svn 来管理我的 bugfix 分支,但它告诉我我有未 merge 的更改,即使我直接查看 SVN 存储库,我也可以看到它们也已提交。这就像错误修复的 rebase 没有将分支设置为 merge 。

我在这里做错了什么?

git checkout -b fix_bug_1234

git add .
git commit -m "first change"
git add .
git commit -m "second change"

git rebase -i HEAD~2 // squash the two changes together

git svn rebase // fetch any changes from svn

git checkout master
git rebase fix_bug_1234
git svn dcommit

git branch -d fix_bug_1234
error: The branch 'fix_bug_1234' is not fully merged.

最佳答案

原因是 git rebase 更改了提交对象。因此,虽然实际内容(或差异)与那些重新定位的提交相同,但它们指的是不同的父项,因此是不同的。

那样 git branch -d 无法验证那些提交的更改是否包含在其他一些提交中。你需要使用 git branch -D(大写的 D)来强制删除。

附带说明:git svn dcommit 与 rebase 具有相同的效果。当 dcommit 将提交推送到 SVN 服务器时,它会再次从 SVN 服务器获取提交。因此,您最终得到的对象与您推送 的对象不同。尽管它们的内容可能相同(除非你有冲突),但它们仍然不同(主要原因是 git svn 在提交消息中添加了一行,说明提交所属的 SVN 版本)。

关于git 声明分支在 rebase 后未 merge - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412599/

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