我们当前的git设置基于白名单,因此默认情况下会忽略所有内容,然后根据需要添加目录。对于新的存储库来说,这很好用,但是由于我们有很多跟踪/未跟踪的文件,因此开始引起问题。
以下是我们的.gitignore的示例:
*
!/example.txt
!/example2.txt
我现在正在尝试将一个文件添加到git中,该文件存在于忽略的文件夹a
中,该文件的路径为:/a/b/c/file.txt
。我的问题是,如何才能不忽略该文件,而忽略/ a文件夹中的其他所有内容?
到目前为止,我发现将其添加到.gitignore中是可行的:
!/a/
!/a/b/
!/a/b/c/
!/a/b/c/file.txt
但是,看起来有点混乱。我本来以为只要在.gitignore中加入!/a/b/c/file.txt
就可以摆脱困境,但这似乎由于某些原因而行不通?
作为参考,我必须运行git rm --cached -r .
和git add .
才能使.gitignore更改生效。
任何帮助将不胜感激-谢谢!
答案 0 :(得分:2)
我认为您需要添加!*/
。这会将目录列入白名单。这是一个示例忽略。
# ignore everything
*
# don't ignore directories
!*/
# whitelist files with extension
*.xyz
# blacklist individual file
a/b/c.xyz
其他选项是将目录中的所有内容都列入黑名单,并将一个文件列入白名单
a/b/c/*
!a/b/c/file.txt
答案 1 :(得分:0)