前面有几件事需要了解:
昨天几次成功提交后,每次我尝试创建一个新的“无法创建提交”时,我都会收到错误。经过一些研究似乎没有添加新文件,所以我认为它与缓存有关。我做了一些快速搜索并给了它一个镜头:
git rm -r --cached
git commit -am 'git cache cleared'
git push
事情在本地仍然可以正常工作,但the prod site无法再找到styles.css文件(404)。有任何想法吗?如果是这样,请提供一些说明,以便我能够理解出了什么问题以及原因。
谢谢!
修改
网站未建立的问题实际上是因为我有以下划线开头的目录,由于Jekyll的原生支持而被禁止。将.nojekyll
文件添加到repo的根目录可以解决问题。
答案 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无法提供有用的错误消息,请尝试在命令行上提交以查看是否提供了更多详细信息。