适用于文件夹及其子文件夹中所有文件的Git忽略设置

3

我在这个目录下有一个.gitignore文件

/Users/keatooon/pos_dev

我想忽略此文件夹中的所有文件,以及此目录下子文件夹中的文件 /Users/keatooon/pos_dev/apps/POS/ipad/native/www:
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default/app
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default/dist
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default/images
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default/ionic
/Users/keatooon/pos_dev/apps/POS/ipad/native/www/default/index.html

/Users/keatooon/pos_dev/apps/POS/ipad/native/www/skinLoader.html

如何做到这一点?

我尝试将所有这些内容添加到.gitignore文件中,但是它无法正常工作:

apps/POS/ipad/native/www/default/

apps/POS/ipad/native/www/*

请问为什么要给我点踩?我是 Git 的新手。 - user1872384
下次我会更加小心,@VonC...谢谢... - user1872384
我已经编辑了我的答案,将MPOS更正为POS - VonC
抱歉打错字了。 - user1872384
1个回答

5
记住 gitignore 的规则: 如果一个文件的父目录被排除在外,则无法重新包含该文件

我想忽略 /Users/keatooon/pos_dev/apps/POS/ipad/native/www 中的所有内容。

那么只需要在 /Users/keatooon/pos_dev/.gitignore 文件中添加以下内容即可:
/apps/POS/ipad/native/www/

(请注意尾随斜杠以忽略文件夹内容)

确保该文件夹的内容尚未被跟踪(因为在这种情况下,任何修改仍将显示在git status中)

使用以下命令检查是否正确地按照规则忽略了文件:

git check-ignore -v /Users/keatooon/pos_dev/apps/POS/ipad/native/www/<aFile>

如果不是,输入:
git rm -r --cached /Users/keatooon/pos_dev/apps/POS/ipad/native/www/
git add .
git commit -m "remove apps/POS/ipad/native/www from repo"

磁盘上的文件将保留,但您将在存储库历史记录中记录删除www/,其内容将被忽略。

user692942评论中提到:

我不想使用完整的相对路径来指向存储库的路由,因此我使用了
**/folder/subfolder/ 这个方法可行。

gitignore手册 中得知:

"前导 **,后跟斜杠表示匹配所有目录。例如,**/foo 匹配任何地方的文件或文件夹 foo,与模式 foo 相同。 **/foo/bar 匹配直接在目录 foo 下面的文件或文件夹 bar。"


哦,尝试过但不能运作。我想忽略 /Users/keatooon/pos_dev/apps/POS/ipad/native/www 中的所有内容。 - user1872384
明白了....这些文件已经在当前仓库被跟踪...将它们删除即可解决问题... - user1872384
不想使用完整的相对路径到存储库的路由,所以我使用了 **/folder/subfolder/,这个方法可行。 "前导 ** 后跟斜杠表示在所有目录中匹配。例如,**/foo 匹配任何地方的文件或目录 foo,与模式 foo 相同。**/foo/bar 匹配直接位于目录 foo 下的任何地方的文件或目录 bar。" - 参考 https://git-scm.com/docs/gitignore - user692942

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接