【问题标题】:Untrack git file取消跟踪 git 文件
【发布时间】:2017-07-31 10:15:20
【问题描述】:

这是我的想法,我有一个带有一些 html 的数据库字段。

<span class="orange"><a href="/pdf/MY_PDF.pdf">Title</a></span>

昨天,我的老板告诉我他想更改这个 pdf。所以,我想我只需要把新文件放在文件夹中,然后在数据库中更改他的名字(MY_PDF2.pdf)。

但这很棘手,因为文件是由 git 跟踪的......所以要查看新的 pdf,我必须只提交这个单一的 PDF。问题是它是一个客户文件......所以如果我们每次他们想要更改时都必须提交一些......这太疯狂了。

所以我只想对 git 说,文件不需要被跟踪。

它在 Symfony 下,这是我的文件位置:C/wamp/www/sitename/web/pdf/

所以我希望我的 git 不再跟踪 pdf 文件夹。 但我不知道该怎么做......当然我可以把它放到我的 gitignore ......但所有其他开发人员仍然会有旧的......因为我认为 gitignore 也被忽略了......

我不太清楚,抱歉。不要犹豫,在我的问题中问你不明白的地方。谢谢

【问题讨论】:

  • 如果您真的想将其设为未跟踪文件,您必须将其从索引中删除。使用git update-index --assume-unchanged 意味着保存的索引版本会进入每个未来的提交:Git 只是停止告诉你有关该文件的信息。但是,删除它有其自身的问题:具体而言,这会导致文件被删除。

标签: git symfony gitignore


【解决方案1】:

如果您想停止跟踪文件,但不想将其从系统中删除:

在您的.gitignore 中添加文件夹。

运行此代码以将文件保存在本地并从存储库中删除文件。

git rm -r --cached .

然后:

git add .

并提交:

git commit -m "Remove PDF files"

【讨论】:

    【解决方案2】:

    使用精确文件:

    1. 在 .gitignore 中添加相对路径。

    git rm --cached <relative path>
    git add <relative path>
    
    1. 提交

    【讨论】:

      【解决方案3】:

      您可以将文件/文件夹或模式添加到.gitignore 文件,git 永远不会跟踪它。

      echo "*.pdf" >> .gitignore # run this command from your project main directory
      

      否则只需在.gitignore 文件中自己添加*.pyc

      如果您的文件已被跟踪,那么您也需要运行此命令。

      git update-index --assume-unchanged <file>
      

      如果您的文件消失了而您不知道该怎么办 - 您需要这样做

      run command git update-index --no-assume-unchanged <file>
      

      【讨论】:

      • 我这样做了,但是当我要推送我的 gitignore 时,我认为其他开发人员将无法取回它。我可能是错的。
      • 无法找回什么?
      • gitignore 文件。
      • gitignore 文件应该被跟踪,当其他开发人员拉取更改时,他的 gitignore 文件也将被更新。原谅我,但我看不到问题。
      • 好吧,我只是想它没有,所以没有更多的问题。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2017-04-24
      • 2017-10-04
      • 2013-06-13
      • 2016-01-01
      • 1970-01-01
      • 2018-02-17
      • 2021-02-04
      • 2012-12-29
      相关资源
      最近更新 更多