我一直在关注如何在Rails中构建博客的教程,现在我已经陷入困境,想要访问GitHub上的先前提交。我是GitHub的新手,并假设在教程期间,当开发人员想要将进度保存到GitHub时,他会调用
$ git status
$ git add .
$ git commit -am "some info about the current commit"
将他的项目保存在某个州。 好吧,我一直在这样做,现在我已经达到了我的项目破坏的程度,并希望将其恢复到我上次工作时的提交。我已经援引了:
$ git log
commit 7f6dd520095ead774a8e612048f52ee11fdfe154
Author: danny rosenfeld <dannyseniorproject@gmail.com>
Date: Sat Sep 19 17:21:56 2015 +0300
Add pages
commit b84c3a601aeacdacbd2a8c71b85e1236554a1275
Author: danny rosenfeld <dannyseniorproject@gmail.com>
Date: Sat Sep 19 16:49:24 2015 +0300
add comments
commit 5822d7c90d15696536d30d531f424863d58de6c7
Author: danny rosenfeld <dannyseniorproject@gmail.com>
Date: Sat Sep 19 16:15:33 2015 +0300
Edit and delete posts
它显示我的提交存在。现在我如何访问它们?我不相信我已经创建了一个特定的存储库,但显然存在这些提交。
答案 0 :(得分:1)
您可以使用
访问任何州git checkout <sha>
<sha>
是其中一个提交哈希值。 Git会找到任何唯一的前缀,所以你通常会看到人们只使用前6或7个字符,例如。 7f6dd52
。如果您想回到原来的位置,请使用
git checkout <branch>
其中<branch>
可能是master
,除非你检查了另一个。{/ p>
如果要将存储库重置为该状态,请检查要更改的分支,然后运行
git reset <sha>
默认情况下,reset
使用--mixed
选项,该选项将分支设置回该提交,但保留文件内容。从那里,你可以重新提交你想要的作品。如果要丢弃当前状态,请指定--hard
,Git将使您的存储库看起来与您指定的SHA完全一样。
如果您只想丢弃尚未提交的代码,最简单的方法是
git checkout .
这会将每个跟踪的文件重置为上次提交中的状态。
一旦签出了所需的提交,就可以像复制任何其他目录一样制作副本或目录。您的副本将包含.git/
文件夹,因此它实际上将成为存储库的另一个克隆。如果您想将其与存储库完全分开,请删除副本中的.git/
。
既然你提到“我不相信我已经创建了一个特定的存储库”,请记住Git是一个独立于GitHub的工具。只要您git init
,您就拥有了一个存储库,之后您可以在remote
的GitHub上添加push
。在您推送到远程数据库之前,您的存储库在本地存在且具有完整的历史记拥有像GitHub这样的遥控器对于冗余非常有用,并且作为一个始终可用的服务器可以与其他人协作。
您可能会喜欢的一些相关文档:
答案 1 :(得分:0)
您可以使用
将文件重置为上次提交git reset --hard HEAD
自上次提交跟踪文件以来的所有更改都将丢失。