Git:回滚到某个提交并将其推送到远程

时间:2015-04-30 16:10:29

标签: git

我对git感到困惑。

                       I am here
                          |
=>c1=>c2=>c3=>c4=>c5=>c6=>c7 
                   |
              needed commit

如何从c5提交中获取确切的代码?我不再需要c6和c7了。

2 个答案:

答案 0 :(得分:3)

如果我理解你的问题,你想彻底删除提交c6和c7 FOREVER吗?

本地:

public void onActivityResult(int requestCode, int resultCode, Intent data) {

然后推到远程(-f强制;这是危险的!)

git reset --hard HEAD~2

备注:

  • git reset --hard:删除提交和所有更改;那些提交永远丢失了(至少以这种方式考虑它们,它们可以在git reflog中保留一段时间)。
  • git push -f:允许你推送到遥控器;即使这意味着你正在改变某些提交的哈希值;如果其他人连接到该存储库,这将导致麻烦!

答案 1 :(得分:0)

您也可以执行git revert。是一次还原一个。

git revert HEAD # Reverts c7

git revert HEAD~2 # Reverts c6