Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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
在git上,我签出了以前的提交,现在可以';我找不到我以后的工作_Git - Fatal编程技术网

在git上,我签出了以前的提交,现在可以';我找不到我以后的工作

在git上,我签出了以前的提交,现在可以';我找不到我以后的工作,git,Git,我对git的使用非常陌生,发现理解分支/提交管理非常混乱。无论如何,我正在从事的项目是由git管理的,我正在使用gitk来完成它。我使用gitk进行commmits,并检查了以前的提交。现在,当我对HEAD的历史进行可视化时,我签出的提交将最后出现,之后的其他5或6次提交将消失 请注意,我当时在master branch工作,但由于某些原因,我现在不在master branch工作。也就是说,gitk可视化是这样的: 承诺14 . . . 承诺9 . . 主人 . . . . 提交1 我签出了c

我对git的使用非常陌生,发现理解分支/提交管理非常混乱。无论如何,我正在从事的项目是由git管理的,我正在使用gitk来完成它。我使用gitk进行commmits,并检查了以前的提交。现在,当我对HEAD的历史进行可视化时,我签出的提交将最后出现,之后的其他5或6次提交将消失

请注意,我当时在master branch工作,但由于某些原因,我现在不在master branch工作。也就是说,gitk可视化是这样的:

承诺14 . . . 承诺9 . . 主人 . . . . 提交1


我签出了commit 9,但也没有任何commit哈希代码

使用git log查看所有提交,获取最近一次提交的SHA1哈希,然后执行

git checkout -b "branchname" <SHA1 goes here>
git签出-b“branchname”

这将检索您在不在签出分支上时所做的任何提交,然后您应该在新分支上看到所有提交。

您处于分离头状态,这意味着您当前的头指向提交而不是分支。您需要做的是再次签出主分支,然后您将在gitk中看到您的提交。在命令提示符中键入以下命令:

git checkout master

Git日志显示我签出的当前提交之前的提交。它没有显示我在那之后做的那些。好吧,我只是做了。谢天谢地,它还显示了所有提交及其哈希。它显示所有53次提交,并在头{0}旁边显示最近的一次提交。这是结帐,所以我只结帐这张下面的那张。但是,看在上帝的份上,你能告诉我刚才发生了什么吗?我怎样才能让我的主人指出这件最新的事情呢?我想你可能处于“超然的头脑状态”(detached head state),但我不知道怎么做。基本上,确保在提交之前始终签出到命名分支。Git会将您的提交记录在一个树结构中,但是对于您正在创建的分支的顶端没有标签(分支名称),所以您找不到它。那么我知道什么呢?如果我想把这个无头分支合并回主分支?实际上我处于分离的头部状态。创建一个新的诱惑分支,将master重置为该分支,然后签出master帮助我解决了这个问题。非常有帮助。gitk的有用技巧:
gitk--all
(显示所有分支)。这样,无论你在哪一台,或者即使你处于“超然”状态,你都能看到一切。是的,就是这样。我以前就知道了。谢谢你指点它以供参考。