无法使用 git add 添加文件
Posted
技术标签:
【中文标题】无法使用 git add 添加文件【英文标题】:unable to add files with git add 【发布时间】:2021-09-15 14:26:44 【问题描述】:我尝试过 git 添加一个文件。但是当我检查 git status 时,该文件仍被标记为“更改未暂存以进行提交”。 我已经阅读了许多类似的问题,并且尝试了所有方法:
确保我在正确的存储库中 确保任何文件夹中没有其他 .git(无子模块) 确保 .gitignore 中没有对应的条目(本地和全局/系统都没有) 确保没有大写/小写错误 确保尝试 git add (-A, -u, ., *) 的所有变体似乎仍然没有任何效果
这就是它的样子:
任何想法,还有什么可以尝试或我可能错过了什么?
提前感谢您的帮助!
编辑:
当我运行jb-build systemtechnik-fuer-energieeffizienz
时,会创建整个_build/
文件夹。它包含(主要是,除了一些其他东西,比如这些.doctree
文档)由nb/
文件夹中的所有这些 jupyter 笔记本创建的 jupyter 书的 html 输出(请参阅此处jupyter book)。所以它不是一个子模块(在我的理解子模块有一个自己的.git
文件夹,但是,在_build/
里面没有这样的文件夹)
git rev-parse --show-toplevel
的输出是:
C:/Users/andre/Documents/GitLab/OER4EE_SYE/systemtechnik-fuer-energieeffizienz
git version
是git version 2.24.0.windows.2
git diff -- _build/.doctree/SYE.doctree
的输出
是:
只是一个空行
git check-attr -a _build/.doctree/SYE.doctree
的输出是:
又是一个空行
【问题讨论】:
git rev-parse --show-toplevel
的输出是什么?
什么是_build/.doctrees/SYE/doctree
?是子模块吗? (如果是这样,你有一个相当旧的 Git 版本。)(注意:如果它不是主要是文本图像,你的问题会远更具可读性。请参阅How to Ask。)
你试过git add _build/.doctrees/SYE.doctree
吗?如果这也不起作用,请检查您是否在 git-root 文件夹(目录,.git
文件夹所在的目录)中执行命令
另外:索引版本git diff -- _build/.doctree/...
的差异中显示了什么?
git 可以在您运行git add
时对文件应用一些修改,前提是它在.gitattributes
中定义了filter
属性。您可以在您的 repo 中检查您的 .gitattributes
文件,或运行 git check-attr -a _build/.doctree/SYE.doctree
以查看是否有任何属性适用于该文件。
【参考方案1】:
整个
_build/
文件夹在我运行jb-build systemtechnik-fuer-energieeffizienz
时创建
那么它应该被忽略:
cd C:/Users/andre/Documents/GitLab/OER4EE_SYE/systemtechnik-fuer-energieeffizienz
echo build/>>.gitignore
git rm --cached -r build/
git check-ignore -v -- build/.doctrees/SYE/doctree
假设doctree
是一个文件,最后一个git check-ignore
命令应该返回一个.gitignore 规则,而git status
永远不应该显示它。
所以它不是一个子模块(在我的理解中子模块有一个自己的
.git
文件夹,但是在_build/ 里面没有这样的文件夹)
子模块不会有一个 .git/ 子文件夹,但是:
将在父存储库根文件夹中的 .gitmodules 文件中声明 将在$GIT_DIR/modules/_build
中,意思是在主父repo 下拥有.git/modules
文件夹
【讨论】:
抱歉回复晚了,我完全忘记了这个。感谢您的回答!问题已按照您的建议解决。我不想更改.gitignore
,因为我刚刚分叉了这个 repo(但所有者做了更改),现在它可以工作了!以上是关于无法使用 git add 添加文件的主要内容,如果未能解决你的问题,请参考以下文章