我有两个分支:师父和邦邦
现在他们在同一点上。Bonbon是一个将要发布的附带项目,但现在已被搁置。我想将主分支还原到创建Bonbon分支之前的某个点。不过,我也希望保留我在Bonbon分支中所做的一些更改,将来可能需要合并回Bonbon分支,这样我就不想丢失这些更改。恢复主分支并选择所需更改的最佳方法是什么?
我试图重置分支,但是当我提交并推送更改时失败了,我再次合并了这两个分支!我应该用力推吗?

最佳答案

我的猜测是,通过重置分支,您的意思是这样的,而在master分支上:

git reset --hard some_ref_below_master

在这种情况下,推送将失败,因为在默认情况下,对特定分支的推送要求合并(远程分支与本地分支的合并)是快进的,也就是说,远程的ref是本地ref的直接父级。
因此,除了强制推送之外,您别无选择——要么使用git push --force,要么使用git push +localref:remoteref(如果远程ref具有相同的名称,则可以省略本地ref规范)。
例如:
git push remote +master # force local and remote master on the same commit
git push +foo:bar # force remote's bar ref to point to the same commit as local's foo

关于git - 将master分支还原到先前的状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8742188/

10-13 09:14
查看更多