相关疑难解决方法(0)

撤消已被推送到远程仓库的Git中的特定提交

撤消特定提交的最简单方法是:

  • 不在脑袋或头部
  • 已被推到遥控器.

因为如果它不是最新的提交,

git reset HEAD
Run Code Online (Sandbox Code Playgroud)

不起作用.而且因为它被推到了遥远的地方,

git rebase -i
Run Code Online (Sandbox Code Playgroud)

git rebase --onto
Run Code Online (Sandbox Code Playgroud)

将导致遥控器出现一些问题.

更重要的是,我不想真正修改历史.如果有错误的代码,它就在历史中可以看到.我只想在工作副本中使用它,我不介意反向合并提交.

换句话说,以下svn命令的Git等价物是什么:

svn merge -r 303:295 http://svn.example.com/repos/calc/trunk
Run Code Online (Sandbox Code Playgroud)

通过反向合并这些修订中的所有更改,将所有更改从295移除到302,作为新提交.

svn merge -c -302 ^/trunk
Run Code Online (Sandbox Code Playgroud)

当然,通过添加另一个反向合并来自相应提交的更改的提交来撤消302提交.

我认为它应该是一个相当简单的Git操作和一个相当常见的用例.原子提交还有什么意义?

我们已经举办藏起来,并要保证的提交是完全原子,你不应该能够很容易地撤销这些原子提交的一个或多个?

git version-control git-revert git-reset

743
推荐指数
4
解决办法
31万
查看次数

标签 统计

git ×1

git-reset ×1

git-revert ×1

version-control ×1