【问题标题】:How do I ensure this file is completely out of my git repository?如何确保此文件完全不在我的 git 存储库中?
【发布时间】:2012-10-25 18:55:17
【问题描述】:

我有一个名为“sitemap.xml”的文件(据我所知)不是我的 git 存储库的一部分。它在我的 .gitignore 列表中。为了测试我的理论,我在本地更新了 sitemap.xml 文件,但它在 Tower(我的 git GUI 客户端)中并没有出现变化。

我的网站上有一个现有的“sitemap.xml”。当我实时推送新的 git commit 时,现有的“sitemap.xml”文件会在我的站点上被删除。这让我相信“sitemap.xml”仍然是我的 git 存储库的一部分。

我尝试进入本地计算机上的终端并在我的 git 存储库的正确目录中执行“git rm sitemap.xml”,但出现“pathspec”错误,说它“不匹配任何文件”。

有什么想法吗?

【问题讨论】:

  • “实时推送新的 git 提交”是什么意思?通常推送不会对工作树进行任何更改。
  • 我正在使用 PHP Fog,当我向他们推送新的提交时,它会自动实时部署。

标签: git terminal git-tower


【解决方案1】:

试试这个: git rm sitemap.xml --cached

在此处阅读文档 http://www.kernel.org/pub/software/scm/git/docs/git-rm.html

【讨论】:

    【解决方案2】:

    您的问题暗示 sitemap.xml 在过去实际上是您存储库的一部分。如果您站点上的存储库确实包含sitemap.xml,那么推送没有该文件的版本将导致在远程更新时删除该文件。

    但是,这只会发生一次。如果在更新到没有 sitemap.xml 的版本后,您将该文件放回去,那么以后的更新将不会删除它。

    【讨论】:

    • 对不起,我应该提到这一点。 Sitemap.xml 过去是存储库的一部分,但现在不应该是。
    • 好的,所以这将是一次性问题。更新您的服务器,放回正确的sitemap.xml 文件,然后继续。
    • 我已经做到了。服务器上的 sitemap.xml 是动态生成的,而不是 git 存储库的一部分。当我实时推送新提交时,它似乎删除了服务器上的 sitemap.xml。
    • 那么我很难说为什么会发生这种情况。这可能与PHP Fog有关吗? (我对此一无所知。)
    猜你喜欢
    • 2011-03-28
    • 2017-07-16
    • 2013-05-28
    • 2023-03-31
    • 2012-10-03
    • 2013-08-07
    • 1970-01-01
    • 2015-04-19
    相关资源
    最近更新 更多