gpt4 book ai didi

Git rebase 一个分支到 master 失败,如何解决?

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

我一直在处理远程 git 存储库的本地副本。我在本地副本上创建了一个分支,我们称它为“my_branch”。我在 my_branch 上提交了几次。

我最近将“my_branch”推送到远程。但是我不知道其他人向远程主机添加了一个版本。所以,我把它交给了我本地的主人。

所以...长话短说,我的本地存储库看起来像这样(我正在尝试使用图表约定 here)。

 --C0--------------C7--  (local master)
\
--C1-C2-C3-- (local my_branch)
\
--C4-C5-C6-- (local sandbox_branch)

我希望它看起来像:

 --C0--------------C7--  (local master)
\
--C1'-C2'-C3'-- (local my_branch)
\
--C4'-C5'-C6'-- (local sandbox_branch)

我试图将 my_branch rebase 到本地主服务器上,但我收到了这条错误消息(我正在使用一个名为 GitX 的 git 可视化工具):

Rebase Failed!
There was an error rebasing HEAD with branch 'master'.

command: git rebase refs/heads/master

It seems that I cannot create a rebase-apply directory, and
I wonder if you are in the middle of patch application or another
rebase. If that is not the case, please
rm -fr /my_project_directory/.git/rebase-apply
and run me again. I am stopping in case you still have something
valuable there.

我做错了什么?我该如何处理?如果我要在命令行上执行此操作,让我进入上图中状态的命令是什么?

更新 1

顺便说一句,我不是在应用程序补丁或另一个 rebase 的中间......至少不是故意的。在我发现 Remote 在我推送后更新后,我进行了一次获取。这会不会让 GitX 认为我正处于应用程序补丁或另一个 rebase 的中间?

我还更新了图表以使其更加准确。 my_branch 有一个分支。我没有将它包含在原始问题中 b/c 我认为这无关紧要。我包括以防万一...

更新 2

仅供引用...“本地”和“远程”的主树看起来像我画的图,只是它没有 sandbox_branch。

最佳答案

git rebase 找到了一个 .git/rebase-apply 目录,因此假定您可能正处于 rebase 的中间。如果在之前的 rebase 期间发生冲突并且 rebase 未完成,就会发生这种情况;也就是说,您没有运行 git rebase --abortgit rebase --skipgit rebase --continue 之一(最后一个解决冲突)。

无论如何,如果您认为您根本没有运行 git rebase,那么您如何结束这种状态并不重要。按照帮助建议简单地 rm -fr/my_project_directory/.git/rebase-apply,您现在应该可以进行 rebase。

但是等等。既然你说你已经将你的分支发布到远程存储库,你不应该尝试将 master rebase 到它上面。事实上,如果您的远程设置为拒绝非快进提交(这似乎是通常推荐的最佳实践),您甚至无法将 rebase 的更改推送到您的远程。一般来说,在将提交发布到远程之后尝试修改提交(这是 git rebase 所做的)是一种不好的做法。

关于Git rebase 一个分支到 master 失败,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8780257/

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