gpt4 book ai didi

git - 从 master rebase 时推送分支

转载 作者:太空狗 更新时间:2023-10-29 13:42:58 24 4
gpt4 key购买 nike

我们是一个 5 人的开发团队。我们有一个 master 分支,每当我们处理新事物时,我们就创建一个新分支。完成更改后,我们将分支推送到 GitLab 并执行 merge/pull 请求,以便它再次与主分支 merge 。

我的机器上有一个分支,我已经为此工作了大约一个星期。在那一周,master 发生了变化,所以我在我的分支上执行这个命令:

git rebase master

完成后,我这样做是为了向上推我的新分支:

git push origin some-branch

当我这样做时,我得到了这个错误:

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.

我按照它的建议去做,我做了一个git pull origin some-branch。现在我更改的文件已经用 ===HEAD> 文本进行了修改。所以我解决了这个问题,然后重新开始我的工作。

然后,我尝试再次执行 git push origin some-branch 并出现完全相同的错误。

为了让它更清楚一点,git status on some-branch 返回:

# On branch some-branch
# Your branch and some-branch have diverged,
# and have 3 and 3 different commits each, respectively.

我该如何解决这个问题,或者我做错了什么?

最佳答案

你应该强制推送你的分支而不是 merge 更改。也就是说,在你 rebase 后使用 git push -f

当您执行 rebase 时,您是在告诉 Git 将 master 的历史重播到您的分支上,随后,您的分支的提交需要在重播的工作之后落到位。

改变了该分支的历史,这解释了为什么您在 git status 中看到分歧消息,但这完全是故意的。然而,在将它与您的远程分支 merge 时,您非常混淆了您的历史;它现在包含本不应该存在的 merge 提交。

下次改用强制推送,但要确定您重新建立基础的工作通过了测试,无论是冒烟测试、单元/集成测试还是其他测试。

关于git - 从 master rebase 时推送分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34441033/

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