当它说当前分支是最新的,即使它不是,如何变基?

时间:2016-07-26 21:26:24

标签: git rebase

我重新设置了我的分支,这可能会使我自己的一些提交。然后意识到我已经忘记了压缩一些提交,所以很难重置和压扁。现在我需要将这些提交带回来。但是再次反驳告诉我,当前的分支是最新的,即使它不是。有办法解决这个问题吗?

编辑:

有两个分支:a和b。两者都是从硕士分支。两者都是最新的主人。分支a有一些变化。我希望分支b也有这些变化。我把分支机构改为b。最新的提交来自分支机构a。我打算在提交之前压缩三个提交。我在最近的提交之前硬复位。然后我压扁了。现在,我希望以一种在将分支b合并到master时不会引起麻烦的方式返回最新的提交。

我已尝试refloggit reset --hard HEAD@{n},但同样的问题:当前分支是最新的。

3 个答案:

答案 0 :(得分:0)

对于我来说,--force-rebase有所帮助。我想,就您而言,应该是:

git checkout b
git rebase --force-rebase a

答案 1 :(得分:-1)

如果您有提交的ID,则可以使用交互式资源库并手动添加它们。

假设您的原始分支为kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic first_topic --group my-first-app ,则可以执行以下操作:

master

您将收到以下内容:

git rebase -i master

您可以添加另一个pick 000000 Name of a commit pick 000001 Name of another commit 并添加要添加的commitId,例如

pick bbbbbb

如果要压缩提交,可以执行以下操作:

pick 000000 Name of a commit
pick bbbbbb
pick 000001 Name of another commit

壁球操作会将您的下一个提交附加到上一个,这意味着pick 000000 Name of a commit squash bbbbbb pick 000001 Name of another commit

答案 2 :(得分:-1)

如果您没有推送该基准,可以将其硬重置为远程存储库分支。

git reset --hard origin/your-branch-name