撤消特定提交的最简单方法是什么:
因为如果不是最新的提交,
git reset HEAD
不起作用。因为它被推到一个遥控器,
git rebase -i
和
git rebase --onto
会在遥控器上引起一些问题。
更重要的是,我真的不想修改历史记录。如果有错误的代码,它在历史记录中并且可以看到。我只想在工作副本中把它弄出来,我不介意反向合并提交。
换句话说,以下svn命令的git等价物是什么:
svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
它通过反向合并这些修订中的所有更改作为新的提交来删除从295到302的所有更改。
svn merge -c -302 ^/trunk
它撤消302提交,当然是通过添加另一个反向合并来自相应提交的更改的提交。
我认为这应该是Git中一个相当简单的操作和一个相当常见的用例。原子提交还有什么意义?
我们有暂存藏匿和所有确保提交是完美的原子,你不应该能够轻松撤消一个或多个原子提交吗?