我想将目录结构保留在
out/
下,并且仅跟踪我的 Git 存储库中的 .htaccess
文件。所有其他文件和子目录都应被忽略。
这是我的目录结构:
out/
├── .htaccess
├── target1/
│ └── .htaccess
├── target2/
│ └── .htaccess
├── target3/
│ └── .htaccess
└── other-files-and-folders/
我当前的
.gitignore
文件如下所示:
out/*
!out/.htaccess
!out/target1/.htaccess
!out/target2/.htaccess
!out/target3/.htaccess
问题: 此配置不会跟踪子目录(
.htaccess
等)中的out/target1/.htaccess
文件。当我运行 git status
时,它们不会出现。使用 git check-ignore
,表明 .htaccess
文件仍然被忽略。
目标:
.htaccess
文件。out/
下的所有其他文件。我应该如何修改我的
.gitignore
文件才能实现此目的?
我建议结合
find
和 git add -f
:
find out/ -name .htaccess | xargs -r git add -f
你还可以从地狱中释放 gitignore 模式:
# in out/. gitignore
*
!*/
!.htaccess
我开玩笑地说“来自地狱”,因为即使是简单的 git status,这仍然会扫描你的
out/
目录的完整内容