我开始使用 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