Archive

Archive for March, 2017

如何回退已经push到upstream的版本

March 23rd, 2017 No comments

当不小心commit了一些错误的内容,并且糟糕的是这些new commits已经push到了upstream。我们该如何会退到正常的commit上去呢?
一种办法是reset到正常的commit, 然后push -f到upstream。 但是这样有一个问题,那就是如果别人已经获得了你push的错误的commits,那么会比较麻烦,可能别人也需要做同样的reset动作。

其实我们可以这样做。

  1. reset –hard good–commit
  2. do something or do nothing
  3. git reset –soft ORIG_HEAD
  4. git ci -am “revert to commit xxx”
  5. git push

这样以来,别人可以继续使用git pull拿到正确的内容而不会有任何的冲突或者手动调整的过程。

当然了,git操作上更加简单的做法是git revert good_commit, 然后git add && git commit&& git push. 不过这样的话可能需要手动resolve conflict.

Categories: programming Tags: