相关疑难解决方法(0)

如何将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万
查看次数

如何将分离的HEAD与master/origin协调?

我是Git分支复杂的新手.我总是在一个分支上工作并提交更改,然后定期推送到我的远程源.

在最近的某个地方,我重置了一些文件以使它们脱离提交暂存,后来又做了一个rebase -i去除几个最近的本地提交.现在我处于一种我不太了解的状态.

在我的工作区域,git log显示我所期待的 - 我在正确的火车上,我不想要的提交,以及那些新的,等等.

但是我只是推送到远程存储库,并且有什么不同 - 我在rebase中杀死的一些提交被推送,而本地提交的新提交不存在.

我认为"master/origin"与HEAD分离,但我不是100%清楚这意味着什么,如何使用命令行工具将其可视化,以及如何修复它.

git

1506
推荐指数
15
解决办法
91万
查看次数

如何撤消'git reset'?

什么是最简单的撤消方法

git reset HEAD~
Run Code Online (Sandbox Code Playgroud)

命令?目前,我能想到的唯一方法是从远程仓库进行"git clone http:// ...".

git

1172
推荐指数
5
解决办法
38万
查看次数

如何将HEAD移回以前的位置?(独立头)和撤消提交

在git中,我试图squash commit通过合并另一个分支然后HEAD通过以下方式重置到上一个位置:

git reset origin/master
Run Code Online (Sandbox Code Playgroud)

但我需要走出这一步.如何将HEAD移回上一个位置?

我有23b6772提交的SHA1 frag(),我需要将其移动到.
我怎样才能回到这个提交?

git git-revert git-checkout git-reset git-reflog

141
推荐指数
4
解决办法
17万
查看次数

使用暂存区域中的未提交文件撤消git reset --hard

我正在努力恢复我的工作.我愚蠢地做了git reset --hard,但在那之前我只做过get add .而且没做过git commit.请帮忙!这是我的日志:

MacBookPro:api user$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)

#   modified:   .gitignore
...


MacBookPro:api user$ git reset --hard
HEAD is now at ff546fa added new strucuture for api
Run Code Online (Sandbox Code Playgroud)

git reset --hard在这种情况下可以撤消吗?

git undo git-add git-reset git-commit

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

自从改革开始以来,流产的旧git rebase和丢失的提交

扯淡!大约一个星期前,我在尝试清理我的存储库时,正在重新设置一些提交,显然我实际上没有完成它.今天,一个星期和几个提交之后,我从今天开始重新订购一些提交,它告诉我,我已经处于变革的中间.

这应该是复制我的回购以防万一的提示.但我没有...而是我git rebase --abort当时听起来正确.嗯,那不对.它从一周前中止了反转,并将主人的HEAD重置为旧的.假!

我还有其他几个相当近的分支,我已经多次推到远程,但最近的变化似乎永远消失了.我没有适当级别的git-fu知道是否有任何方法可以恢复我的更改.

我搞砸了吗?

编辑 - 哇!多谢你们!git reflog太棒了!我已经完全恢复了......经验教训.标记Tchalvak的答案被接受为第一个发布.

git git-rebase

65
推荐指数
2
解决办法
1万
查看次数

无意中恢复了主人,丢失了未提交的更改

我设法犯了一个大错(在星期一早上)在Master上工作,忘记创建新的分支,对文件进行更改然后无意中恢复到master,丢失所有更新.我没有提交更新的文件.

我丢失了所有更新还是可以检索它们?

不要问我怎么样,因为每当我想到它,我都必须在脸上打自己.

git

61
推荐指数
4
解决办法
7万
查看次数

执行git reset后恢复添加的文件--hard HEAD ^

我添加了一个新文件F1并对另一个文件F2进行了更改,但后来又进行了"git reset --hard HEAD ^",我丢失了对文件的所有更改.

一些方法,我可以让他们回来.

我在这里看了一个相关的问题:如何撤消git reset --hard HEAD~1? 但是,这个问题假设一个人做了一个git提交.

git version-control

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

Git失去了承诺

我试图在git中修复一个问题并且意外地使用git reset --hard来进行一些先前的提交.所以现在我无法回到原来的脑袋.

但是,在我这样做之前,我确实克隆了存储库,因此我将丢失的提交推回原始版本.这似乎在昨天工作,但今天我看到原来仍然坚持旧的提交,新的似乎不存在.试图再次从克隆中推送新提交不起作用,因为git告诉我一切都是最新的.

我该如何解决?

git

40
推荐指数
3
解决办法
2万
查看次数

撤消git提交

您是否可以通过git命令撤消过去的提交,该提交早已合并到您的git存储库中?或者您是否必须手动撤消该提交中所做的所有更改?

git git-commit

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