我重新设置了我的分支,这可能会使我自己的一些提交。然后意识到我已经忘记了压缩一些提交,所以很难重置和压扁。现在我需要将这些提交带回来。但是再次反驳告诉我,当前的分支是最新的,即使它不是。有办法解决这个问题吗?
编辑:
有两个分支:a和b。两者都是从硕士分支。两者都是最新的主人。分支a有一些变化。我希望分支b也有这些变化。我把分支机构改为b。最新的提交来自分支机构a。我打算在提交之前压缩三个提交。我在最近的提交之前硬复位。然后我压扁了。现在,我希望以一种在将分支b合并到master时不会引起麻烦的方式返回最新的提交。
我已尝试reflog
和git reset --hard HEAD@{n}
,但同样的问题:当前分支是最新的。
答案 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