gpt4 book ai didi

git - 无法完成 Git Rebase

转载 作者:太空狗 更新时间:2023-10-29 12:52:38 25 4
gpt4 key购买 nike

我目前在一个分支上工作,想用 master 更新它。所以我尝试做一个 rebase 。

我正在工作的当前分支:crtdev

我试过做 rebase,比如,

git checkout crtdev
git rebase master
// used diff mergetool to solve merge issues
git rebase --continue

现在说,应用:“我在该分支中完成的所有提交消息”

但是在那之后需要做什么呢?

我检查了 repo,没有任何变化,当我说 git status 时,我看到 merge 的文件显示为 filename.html.orig

-- 编辑当我运行 git rebase --continue 时,我收到此消息 No rebase in progress?

通过运行 Git status 我看到这条消息

# On branch crtdev
# Your branch and 'origin/crtdev' have diverged,
# and have 33 and 8 different commits each, respectively.
# (use "git pull" to merge the remote branch into yours)

要完成rebase,需要做什么?

最佳答案

rebase 完成。

# On branch crtdev
# Your branch and 'origin/crtdev' have diverged,
# and have 33 and 8 different commits each, respectively.
# (use "git pull" to merge the remote branch into yours)

看,它没有说任何关于正在进行的 rebase 。 rebase 已经完成。它唯一说的是 crtdevorigin/crtdev 有分歧,但这正是它在 rebase 后应该说的。

你已经在 master 上完成了 crtdev 的 rebase 。这意味着您已经丢弃了 crtdev 的旧历史并在 master 上重新创建了它。然而 origin/crtdev 是一个单独的 ref,仍然指向旧的历史。你的历史现在看起来像这样:

X--Y--Z...--master
\ \
\ A'--B'--C'--D'--E'--F'--crtdev
\
A--B--C--D--E--F--origin/crtdev

修订版 A'-crtdevA-origin/crtdev 进行相同的更改(没有冲突解决) 做了,但它们是新的变化。因为它们还包含来自 master 的新更改,git 中的提交 ID 是其内容的校验和。

现在如果没有其他人基于origin/crtdev,您只想推出新的历史记录。 git push -f(分支名称匹配,因此不需要参数;完整命令为git push -f origin crtdev:crtdev)。

但是,如果有人已经使用过origin/crtdev,那么您就做错了。您应该丢弃 rebase (git reset --hard origin/crtdev) 的结果并改为 merge。问题是,如果已经有其他基于该分支的工作,它将继续基于它的旧版本。虽然可以在新版本上对其进行 rebase ,但很容易忘记和做错事,让毫无戒心的同事感到困惑。

关于git - 无法完成 Git Rebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22447429/

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