我有一个回购两个分支 - master和dev。我正在主分支上工作,并且收到一条消息,表示回购是最新的。我承诺我的更改,并推到远程回购(在github上)。我收到一条消息,说有些更改被拒绝。恢复push'd git承诺
然后我做了一个git pull origin dev
,这显然是错误的做法 - 因为它将开发分支与我的主人合并在一起,并且像一个白痴,直到我再次推动为止,我才注意到这一点。所以上次提交显示Merge branch 'dev' of github.com:myuser/myrepo
。
通过执行git reset --hard [sha]
,我可以回到我本地回购库上的最后一个已知良好状态,[sha]是合并前的提交(尽管我不知道如何将该更改转换为原点) - 或者从我读过的内容中,我也可以做一个git revert -m
然后提交/推送那个改变。
任何人都可以通过“正确的方式”来解除合并,并将两个分支恢复到合并之前的位置吗?
感谢 - 如果它很重要这是一个只有两个开发人员的共享回购,所以它不会发生重大变化。
修改添加:请跟我说话,好像我还是个孩子。我不得不承认,这个Git的东西仍然让我困惑,所以我远离了高级用户!谢谢
危险但如果只有两个开发人员,我认为没关系。在做这件事之前备份至少一份你的回购可能是有意义的,以防万一你搞砸了。 – 2011-03-15 19:03:06
git push origin master -f – 2011-03-15 19:18:58
谢谢felipefg--看起来像完美的工作!我赞赏清楚的答案。 – julio 2011-03-15 20:14:51