Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hg回滚的git等价物_Git - Fatal编程技术网

hg回滚的git等价物

hg回滚的git等价物,git,Git,如何在不删除任何更改的情况下“回滚”git中的最后一次提交 这是我在hg中经常做的事情: 提交“修复107” 记得我忘了做点什么 hg回滚 做点什么 提交“修复107” 在这个特定实例中,我将git commit--amend。如果您还没有推送,并且已经提交了其他更改,那么您也可以使用git-rebase-i编辑您想要的任何提交。在这种情况下,使用git您可能更喜欢使用--amend选项 提交“修复107” 记得我忘了做点什么 做点什么 git提交--修改并编辑注释 如果由于其他原因需要回

如何在不删除任何更改的情况下“回滚”git中的最后一次提交

这是我在hg中经常做的事情:

  • 提交“修复107”
  • 记得我忘了做点什么
  • hg回滚
  • 做点什么
  • 提交“修复107”

在这个特定实例中,我将
git commit--amend
。如果您还没有推送,并且已经提交了其他更改,那么您也可以使用
git-rebase-i
编辑您想要的任何提交。

在这种情况下,使用git您可能更喜欢使用
--amend
选项

  • 提交“修复107”
  • 记得我忘了做点什么
  • 做点什么
  • git提交--修改
    并编辑注释

如果由于其他原因需要回滚,请查看
git revert

我试图在git存储库中执行hg回滚,我使用

git reset HEAD~
这使我在工作目录中保留了我的更改,但现在未保存

试试这个:

git reset --soft HEAD^
我发现它与“hg回滚”相同,因为:

  • 上次提交已取消
  • 保留的更改
  • 以前提交的文件将被暂存
您还可以像下面这样创建一个
rollback
git别名:

git config --global alias.rollback 'reset --soft HEAD^'

因此,您现在只需键入
git rollback
,即可使用与Mercurial上相同的命令。

revert
是一种处理其他原因的方法。如果所讨论的提交已发布,那么实际上,请使用
git revert
。如果它尚未被推送,并且是最近的提交,请使用
git reset[--hard]HEAD^
。如果它没有被推送,并且不是最近的提交,请使用
git-rebase-i
将其从历史记录中删除,其余部分保持不变。小心git noobs(像我一样)。我做了“git reset HEAD^”,它不仅从历史记录中删除了我的提交,而且还将提交的文件恢复到以前的提交状态。@DaviLima
git reset HEAD^
不应该这样做,如果您还使用
--hard
标志,它应该只修改工作目录中的文件。