首页 > 解决方案 > 变基/合并时出现“创作和提交”问题的 Git 问题

问题描述

我对 git 不太熟悉,所以我在使用它时遇到了一些麻烦。

目前,我的分支落后 26 个提交,提前 29 个提交。这是由以下原因引起的:

大约 3 天前,我从主人那里做了一个分支,我们称之为“bugFix”,并提交了 2 个修复错误。我将这些更改推送到遥控器上的 bugFix。然后,今天,我又提交了一次 bugFix。这段时间在master上做了26次commit,所以我把远程master拉到我的master上,rebase bugFix到本地的master,然后尝试push。它给了我一个错误,我需要在推送之前拉遥控器,所以我使用“git pull -rebase”来做到这一点。

然而,现在我有一个非常混乱的提交历史,因为它显示所有 26 个提交都是“由 X 编写并由我提交”,而在 master 上,所有 26 个提交都是由 X 提交的。因此我的分支是现在有 26 个提交落后,29 个提交提前。我怎样才能防止这种情况在未来发生?

标签: git

解决方案


我怎样才能防止这种情况在未来发生?

当您这样做时会出现问题,git pull --rebase因为远程错误修复分支不包含来自 master 的 26 个提交。当您执行 rebase 时,git 创建了 26 个新提交,它们是 master 上 26 个提交中更改的副本,但具有不同的历史记录(可能还有提交者)。

要解决此问题,您可以将本地错误修复分支重置为重新基于 master 的 3 个提交。然后您可以git push -f强制覆盖错误修复分支的远程版本。


推荐阅读