无法使用git add添加文件

3

我尝试将文件添加到Git中,但是当我检查Git状态时,该文件仍被标记为“更改未暂存提交”。

我阅读了许多类似的问题并尝试了所有方法:

  • 确保我在正确的代码库中
  • 确保没有其他文件夹中的.git文件(无子模块)
  • 确保没有对应的.gitignore条目(本地和全局/系统都没有)
  • 确保没有大小写错误
  • 尝试所有git add的变体(-A、-u、.、*)

仍然没有任何作用。

就像这样:

enter image description here

还有什么其他尝试或者我可能错过的内容吗?

提前感谢任何帮助!

编辑:

当我运行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 的输出是什么? - Matt
“_build/.doctrees/SYE/doctree”是什么?它是一个子模块吗?(如果是,那么您可能使用的是相当旧的Git版本。)(注意:如果您的问题不是大部分都是文本图像,那么它将更易读。请参见[ask]。) - torek
1
你尝试过 git add _build/.doctrees/SYE.doctree 吗?如果这也不起作用,检查一下你是否在 git 根目录(即 .git 文件夹所在的目录)中执行命令。 - SwissCodeMen
还有:使用索引版本“git diff -- _build/.doctree/...”会显示什么差异? - LeGEC
当你运行 git add 命令时,如果在 .gitattributes 文件中定义了 filter 属性,git 可以对文件进行一些修改。你可以检查你的仓库中的 .gitattributes 文件,或者运行 git check-attr -a _build/.doctree/SYE.doctree 命令来查看是否有任何属性应用于此文件。 - LeGEC
显示剩余2条评论
1个回答

2

当我运行jb-build systemtechnik-fuer-energieeffizienz时,整个_build/文件夹都会被创建。

然后应该忽略它:

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下,也就是在主父存储库自己的.git/modules文件夹下

抱歉回复晚了,我完全忘记了这件事。谢谢你的答案!问题已经按照你的建议解决了。我不想改变.gitignore,因为我刚刚fork了这个repo(但是所有者已经做出了更改),现在它可以工作了! - Andre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接