标签: git-revert

如何将Git存储库还原为以前的提交

如何从当前状态恢复为在某个提交时创建的快照?

如果我这样做git log,那么我得到以下输出:

$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date:   Thu Nov 4 18:59:41 2010 -0400

blah blah blah...

commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date:   Thu Nov 4 05:13:39 2010 -0400

more blah blah blah...

commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date:   Thu Nov 4 00:55:06 2010 -0400

And yet more blah blah...

commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date:   Wed Nov 3 23:56:08 2010 -0400

Yep, more blah blah.
Run Code Online (Sandbox Code Playgroud)

如何从11月3日恢复提交,即提交0d1d7fc

git git-revert git-checkout git-reset

7278
推荐指数
42
解决办法
549万
查看次数

如何还原未提交的更改,包括文件和文件夹?

是否有一个git命令可以恢复工作树和索引中的所有未提交的更改,还可以删除新创建的文件和文件夹?

git git-revert git-reset git-clean

1012
推荐指数
11
解决办法
73万
查看次数

如何使用'git reset --hard HEAD'恢复到之前的提交?

我知道Git会跟踪我对我的应用程序所做的更改,并且它会保留给他们,直到我提交更改,但这里是我挂断的地方:

当我想恢复到之前的提交时,我使用:

git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

而Git回归:

HEAD is now at 820f417 micro
Run Code Online (Sandbox Code Playgroud)

然后,我如何将硬盘上的文件恢复为之前的提交?

我接下来的步骤是:

git add .
git commit -m "revert"
Run Code Online (Sandbox Code Playgroud)

但我的硬盘上没有任何文件发生变化......

我在做什么是对还是错?

git head git-revert git-reset

898
推荐指数
2
解决办法
275万
查看次数

如何恢复多个git提交?

我有一个git存储库,如下所示:

A -> B -> C -> D -> HEAD
Run Code Online (Sandbox Code Playgroud)

我希望分支的头部指向A,即我希望B,C,D和HEAD消失,我希望头部与A同义.

听起来我可以尝试改变(不适用,因为我推动了之间的变化),或者还原.但是如何恢复多个提交?我一次还原一个吗?订单重要吗?

git commit git-revert

877
推荐指数
13
解决办法
44万
查看次数

回滚到公共仓库中的旧Git提交

我怎样才能回滚到git中的特定提交?

有人可以给我的最佳答案是使用git revertX次,直到达到所需的提交.

所以,假设我想恢复到20次提交的提交,我必须运行20次.

有更简单的方法吗?

我无法使用重置,因为此存储库是公共的.

git git-revert git-checkout

758
推荐指数
7
解决办法
88万
查看次数

撤消已被推送到远程仓库的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中最后一次提交后重置所有更改

如何撤消上次提交后对目录所做的每次更改,包括删除添加的文件,重置已修改的文件以及添加已删除的文件?

git git-revert git-reset git-commit

305
推荐指数
2
解决办法
14万
查看次数

Git Revert,Checkout和Reset之间有什么区别?

我想了解如何重新恢复或回滚文件和项目到以前的状态,不明白之间的差别git revert,checkoutreset.为什么有3个不同的命令看似相同的目的,何时有人选择一个而不是另一个?

git git-revert git-checkout git-reset

251
推荐指数
7
解决办法
8万
查看次数

在Git中重新进行恢复合并

我在这里遇到了一个问题:我28s在Git中有一个特定于问题的分支,我在一般develop分支中合并.事实证明我做得太快了,所以我使用git-revert来撤消合并.然而,现在是合并的时候28sdevelop,但是git-merge命令看到了原始的合并,并且愉快地宣布一切都很好并且分支已经合并.现在我该怎么做?创建'还原'还原"28s - >开发""提交?似乎不是一个很好的方法,但我现在无法想象任何其他.

树结构是什么样的:

Git日志输出

git git-merge git-revert

207
推荐指数
5
解决办法
8万
查看次数

如何撤消git中的最后一次提交

错误地,我做了git add .并且git commitdevelop分支机构.但幸运的是,我没有这样做git push.

所以我想把它恢复到原始状态.

我试过了git reset --soft,git reset HEAD --hard但看起来我搞砸了.

我该如何解决?我想回到原始状态并可能保持代码更改.

git git-revert git-reset git-commit

198
推荐指数
2
解决办法
20万
查看次数