我试图理解以下信息:
cap@MacPro-2 wiki-dir % git add -A -- /Users/cap/DOCKER/dante-wiki/volumes/full/content/wiki-dir/extensions/DanteBread/breadCrumbs.js
The following paths are ignored by one of your .gitignore files:
extensions
hint: Use -f if you really want to add them.
hint: Turn this message off by running
hint: "git config advice.addIgnoredFile false"
我觉得令人困惑的问题如下:
在发出git add
命令之前,我得到了
cap@MacPro-2 wiki-dir % git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: extensions/DanteBread/COPYING
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: extensions/DanteBread/breadCrumbs.js
之后我得到了
cap@MacPro-2 wiki-dir % git status
On branch master
Your branch is up to date with 'origin/master'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: extensions/DanteBread/COPYING
modified: extensions/DanteBread/breadCrumbs.js
所以Git实际上 * 确实 * 将添加的文件添加到了暂存区,尽管我没有使用-force
。
另外,一个单独的git check-ignore
表示该文件 * 不 * 被忽略。
为什么我得到这个警告?为什么git add
声明路径extensions
被忽略,而git check-ignore
没有找到它?
2条答案
按热度按时间c9qzyr3d1#
我可以在我的Linux系统上重现同样的问题,使用git版本2.42.0。它看起来像是git中的一个bug(或缺点)--至少在当前版本中是这样。
设置:
现在:
git check-ignore dir1/versioned.txt
将产生空输出,但运行git check-ignore dir1/ignored.txt
甚至git check-ignore dir1/doesnt_exist.txt
将显示某些内容被忽略:git status
中,尽管它 * 确实 * 被添加,但在运行git add
时我得到警告:a0x5cqrl2#
我做了大量的测试,得出以下结论:
1.看起来我的gitignore / index / tracking的心理模型是不正确的。
1.看起来对gitignore如何工作的描述很糟糕,但有一点虚幻,看起来行为是正确的。
1.暗示是错误的。“如果你真的想把它们加进去”的语言,至少在我看来,是指错了方向。
1.我现在的解决办法是关闭提示。
1.这些文件已在索引中,不受添加的影响。