我们有一个git存储库,其中包含一个我们想要解决的文件夹,以便:
在线查看我们得出的结论是,如果该文件夹在创建时没有添加到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”时仍会显示。
非常感谢任何帮助或建议 谢谢!
答案 0 :(得分:0)
首先,您需要为每个单独的文件“假设不变”:
git ls-files -z /dir/to/untrack/ | xargs -0 git update-index --assume-unchanged
然后,将.gitignore文件添加到/ dir / to / untrack /,其中包含以下内容:
*
!/.gitignore
这可以防止任何新的更改/添加被选中。