无法使用 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 versiongit 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 添加文件的主要内容,如果未能解决你的问题,请参考以下文章

git 遇到的无法成功push的问题

git指令累计

gitadd文件名

Git 恢复暂存区(git add之后的)文件

git无法下载需要授权的文件

不能将 git add 与 --patch 选项一起使用