git分行主擦除我所有的工作如何恢复呢
我经常把我的零钱交给你git分行主擦除我所有的工作如何恢复呢,git,Git,我经常把我的零钱交给你 git add * 及 有两周的时间我发现了分支,所以我创建了一个分支,并在该分支中编写了代码。现在我执行了git checkout master,丢失了很多文件(在创建分支之前有一个文件被删除了) 这是一年的工作。 检查分支主控后,我的名为test的分支被删除(我不知道这怎么可能) 我已经和recuva核对了文件显示。 (对不起我的英语) 由@underline\u d解决: 1) git reflog 我得到了最后一个人头的名单 c92fba6 HEAD@{0}:
git add *
及
有两周的时间我发现了分支,所以我创建了一个分支,并在该分支中编写了代码。现在我执行了git checkout master,丢失了很多文件(在创建分支之前有一个文件被删除了)
这是一年的工作。
检查分支主控后,我的名为test的分支被删除(我不知道这怎么可能)
我已经和recuva核对了文件显示。
(对不起我的英语)
由@underline\u d解决:
1) git reflog
我得到了最后一个人头的名单
c92fba6 HEAD@{0}: checkout: moving from bc679831379ae324856d02492aecdeb0abffff8d
to master
bc67983 HEAD@{1}: commit: bug fixe #32
fcaccea HEAD@{2}: commit: bug fixe #31
009579a HEAD@{3}: commit: bug fixe #30
所以我打字
2) git checkout bc67983
我把我所有的文件都还给你了
git checkout master
将您的工作副本更改为主分支-您的另一个分支仍然存在,您的工作副本只需更改回主分支即可
git checkout
应该这样做-之后,您可能需要将您的分支内容合并到主分支git帮助签出
git帮助合并
将进一步帮助您 您签出了master,所以git将您的工作树恢复到上次提交master的状态。如果您希望返回到反映您对分支承诺的所有内容的状态,请检查分支。(您没有说分支的名称;我假设它是我的分支
)
如果要将分支上所做的更改合并到master
,可以合并
git checkout master
git merge my_branch
将来,您可能希望在尝试使用某个功能之前了解该功能,而不仅仅是“发现”它。因此,听起来您不是在提交分支,而是在提交分离的
头。因此,签出master
意味着您“丢失”了对正在处理的提交的引用
但这一切并没有失去git
保留它所看到的引用的日志,并且这些引用不会永远丢失,直到垃圾回收运行并删除在配置的保留期之外孤立的内容。您可以通过运行git reflog
来查看此信息
谢天谢地,通过这样做,正如您所看到的,即使不属于任何分支的提交也仍然保留在git
的数据库中,您可以检查它们
您现在应该做的是git reset
某个分支指向您正在恢复的最新提交,否则您仍将处于分离头上
,以后可能会再次遇到相同的问题。。。因此,如果希望master
指向恢复的提交,请运行git checkout master&&git reset--hard[the hash]
。或者使用git checkout-b phew\u从分离的头部创建一个新的分支,它是一个关闭的分支
googlegit reflog
。搜索堆栈溢出:我也有git gui和git gui说一切都很好。点表示本地文件夹,星号表示文件夹中的所有文件。checkout
删除了以前的HEAD
分支,或者以前添加到git
的对象现在立即丢失,并且不可能仍然被某个分支引用或挂起提交。发布git分支的输出和git reflog
的(前25行左右)行。非常感谢@underline\u d的回复,我可以将您标记为已接受。我正在编辑我的原始帖子来解释我是如何解决它的现在你应该做的是git reset
一些分支指向你正在恢复的最新提交,否则,我认为您仍将处于分离头上
,以后可能会再次陷入相同的问题…Thx但我的另一分支不再存在在您最初的问题中您是否指定另一分支已被删除。那是怎么发生的?
git checkout my_branch
git checkout master
git merge my_branch