将以点开头的文件添加到存储库时出现问题

将以点开头的文件添加到存储库时出现问题

我开始使用 git repo 来备份配置文件,也在“/etc”中,使用“/”作为工作树,并为该命令创建了一个名为“git-backup”的别名:

git --work-tree=/ --git-dir=/home/user/repo/.git

这似乎工作了好几年,但现在它坏了:我无法添加文件,而且确实无法添加“.config”文件,即使使用 -f 选项也是如此;如果我尝试在主目录中添加一个文件夹:

git-backup add src/linux-5.10.147
The following paths are ignored by one of your .gitignore files:
home
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"

我在用着

git-backup config --global core.excludesfile ~/.gitignore_global

和“.gitignore_global”文件是:

# First, ignore everything
*
# Now, whitelist anything that's a directory
#!*/
# And all the file types you're interested in.
!/etc/*
!/home/user/*

文件“.git/info/exclude”的所有行都被注释掉了。

我使用的存储库仅包含自述文件,我克隆它,并将别名中定义的 git-dir 指向克隆存储库中的 .git 目录。

有什么意见或建议吗?

谢谢

答案1

根据 git 文档,您的 .gitignore 文件不应该工作:

可选前缀“!”这否定了模式;先前模式排除的任何匹配文件将再次包含在内。如果排除某个文件的父目录,则无法重新包含该文件。出于性能原因,Git 不会列出排除的目录,因此包含文件上的任何模式都无效,无论它们是在哪里定义的。在第一个“!”前面放置一个反斜杠(“”)。对于以文字“!”开头的模式,例如“!important!.txt”。

尝试更改您的 .gitignore 文件以重新包含目录本身:

!/etc
!/home          # Reinclude home ...
/home/*         # ... but exclude all sub-directories of home ...
!/home/user/*   # ... except user

相关内容