忽略git文件夹而不从远程仓库中删除,并忽略新文件

时间:2016-02-08 17:25:39

标签: git github gitignore

我们有一个git存储库,其中包含一个我们想要解决的文件夹,以便:

  1. 该文件夹仍在我们的远程目录中,但运行“git status”时未显示本地完成的任何更改
  2. 不会跟踪自动添加到文件夹的任何新文件
  3. 在线查看我们得出的结论是,如果该文件夹在创建时没有添加到gitignore,那么之后添加它就不会停止跟踪该文件夹。该文件夹是一个程序生成的文件夹,但我们不需要从远程仓库更新它,但我希望仍然保留它,因为它加快了一些事情的过程。我在网上找到了一些解决方案,看到很多人跑了

    git rm -r --cached <your directory>
    

    将取消跟踪该文件夹,但也将其从我的远程仓库中删除,这不是我们想要的。我看到另一个涉及运行的解决方案

    git update-index --assume-unchanged /dir/to/untrack
    

    这将打印出“Ignoring path dir”,但如果在该文件夹中创建了一个新文件,则在运行“git status”时会显示该文件。我们还尝试编辑一个文件,该文件是我们设置为未跟踪的目录之下的一个目录(即dir / to / untrack / dir2 / changedThisFile.txt),该文件在运行“git status”时仍会显示。

    非常感谢任何帮助或建议 谢谢!

1 个答案:

答案 0 :(得分:0)

首先,您需要为每个单独的文件“假设不变”:

git ls-files -z /dir/to/untrack/ | xargs -0 git update-index --assume-unchanged

然后,将.gitignore文件添加到/ dir / to / untrack /,其中包含以下内容:

*
!/.gitignore

这可以防止任何新的更改/添加被选中。