如何使用git ignore忽略非dotfiles(所有非隐藏目录,在我的存储库的根目录中)?

如何使用git ignore忽略非dotfiles(所有非隐藏目录,在我的存储库的根目录中)?

问题描述:

我想跟踪我的"dotfiles".我希望gitignore忽略所有隐藏文件(文件扩展名:.* ).

I'd like to keep track of my "dotfiles". I'd like a git ignore to ignore all hidden files (file extension: .*).

与以下内容完全相反: Git:如何忽略隐藏目录?

Essentially the opposite of: Git: how to ignore hidden directories?

在我的 .gitignore 中,我尝试过:

[^.]*

# Ignore everything
*

# Include all dot files.
!.*

两者似乎都无法正常工作.

Both which do not seem to work as intended.

MCVE:

mkdir .test .test2
mkdir abc abc2

echo ".keepme" > .test/.keepme
echo ".keepme" > .test2/.keepme
echo ".keepme" > abc/.keepme
echo ".keepme" > abc2/.keepme

echo "keepme" > .test/keepme
echo "keepme" > .test2/keepme
echo "keepme" > abc/keepme
echo "keepme" > abc2/keepme

git init
# attempt 1
echo "[^.]*" > .gitignore

mkdir -p .test/abc/
echo "abc" > .test/abc/abc

git add .gitignore
git commit -m "gitignore"

git add .

git status

我需要在/之前加上前缀,使其仅作用于根目录.

I needed to prepend a / to have it act on the root directory only.

/[^.]*

此问题帮助:如何仅排除文件从Git的根文件夹中