清除了git缓存,破坏了网站

时间:2014-07-21 14:59:13

标签: git caching github git-commit

前面有几件事需要了解:

  1. 我正在组建一个超级简单的网站here
  2. 我对Git几乎一无所知,所以我使用GitHub for Windows应用程序。
  3. 昨天几次成功提交后,每次我尝试创建一个新的“无法创建提交”时,我都会收到错误。经过一些研究似乎没有添加新文件,所以我认为它与缓存有关。我做了一些快速搜索并给了它一个镜头:

    git rm -r --cached
    git commit -am 'git cache cleared'
    git push
    

    事情在本地仍然可以正常工作,但the prod site无法再找到styles.css文件(404)。有任何想法吗?如果是这样,请提供一些说明,以便我能够理解出了什么问题以及原因。

    谢谢!

    修改

    网站未建立的问题实际上是因为我有以下划线开头的目录,由于Jekyll的原生支持而被禁止。将.nojekyll文件添加到repo的根目录可以解决问题。

1 个答案:

答案 0 :(得分:1)

Git"缓存"与网络缓存无关,或者可能与您通常认为的其他程序中的缓存无关。通常,这将引用临时区域,它在确定应提交的内容时使用。在git rm的情况下,它并不是真的意味着,至少就我所见。

当您git rm --cached某事时,将其从Git存储库中删除,但将其保留在工作副本中。这意味着您运行命令的本地副本仍具有这些文件。但是,当您推送新提交时,您删除的所有文件的副本都会从另一个副本中删除!

你应该提交revert,这实际上会创建一个新的提交来撤消有问题的提交。如果这是您最近的提交,请执行以下操作:

git revert -n HEAD^
git commit -am "Replace accidentally deleted files"
git push

如果是早期提交,请查看日志(使用git log或图形GitHub应用程序)查找其哈希值。然后用提交哈希替换HEAD^(前七个字符就足够了)。

完成后,您需要确定原始问题的原因。如果图形GitHub无法提供有用的错误消息,请尝试在命令行上提交以查看是否提供了更多详细信息。