我不小心将一系列提交提交到了我不打算提交的分支上。 我原本想把它们放在
master
,但结果却是把它们放在了我们称之为integ
的共享分支上。 我希望找到一种方法将这些提交从integ
中移除,并将它们放在master
上; 我希望它们从未存在于integ
中。
在github上,integ
和master
都已经被共享了。 我们的CI环境使用integ
分支。
我了解到git rebase
是一种选择,但据我所知,它会使integ
分支在其历史记录中具有被重新应用到master
上的提交,因此不能再使用。 具体来说,我指的是:
http://blog.evan.pro/a-simple-explanation-of-git-rebase
原文如下:
在这里它说:
此时不要从 origin/feature/my-topic 等分支进行拉取、合并或变基操作!为什么呢?因为 Git 认为:“哦,看,origin/feature/my-topic 分支有两个提交(D 和 E),而我们本地的 feature/my-topic 分支没有。那就把它们合并进来吧!”…… 这是一个问题,因为我们确实有这些提交,但是当我们运行 git rebase 后,它们的哈希值已被改写成 F 和 G。
我的问题是:
- 我该如何恢复这些分支的状态,使得
integ
分支的 10 个提交最终出现在master
分支上,并且integ
分支看起来好像从来没有这些提交一样? - 是否可能实现这一点?
- 如果不能,我该如何回到可以继续的位置?
提前感谢您的帮助!
integ
分支是可能的,但这将使得任何人指向当前提交的 当前检出 副本无效。如果可以让每个人在继续对其进行更多提交之前重置他们的integ
分支,则可以选择rebase
。然而,除了最简单的情况外,这将是一种非常痛苦的方式。 - Garethinteg
分支上的CI工作是为了测试如何最好地使用CI工具运行构建,而且我是唯一在integ
分支上工作的人。所以,在变基之后,我需要将所有内容推送到GitHub,并要求另一个人重置他的分支副本,然后我就可以处于一个良好的位置了?谢谢! - Jon