社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

“git add<file_name>”命令导致错误“致命:pathspec‘file_name’与任何文件都不匹配”

Trixie the Cat • 3 年前 • 1500 次点击  

在你标记为重复之前,我引用了这个类似的问题: Fatal: pathspec 'file.txt' did not match any files, GIT

然而,我的问题似乎与贴在那里的略有不同。

我是Git和GitHub的完全初学者。我已经编写了一个完整的程序,并按照说明将其上传/提交到我的GitHub页面。它似乎没有任何问题。

后来,作为进一步的练习,我编辑了包含程序源代码的文件。我只想把这个新编辑的程序上传/提交到我的GitHub页面。但是,当我尝试输入命令时:

git add <file_name> 

我得到以下信息:

fatal: pathspec 'file_name' did not match any files

我认为这可能是语法问题,所以我尝试了“git add<file_name>”我还尝试了使用“/”而不是文件扩展名的add命令,因为使用“Git status”命令时,它在Git Bash中就是这样显示的。什么都没用。 git add error 1

然后我注意到,当我使用“dir”命令时,文件名是用不同的语法表示的。似乎由多个单词组成的文件名由空格分隔,用反斜杠后跟空格表示,并且没有文件扩展名,因此我的文件:“Word Guess.txt”变成了“Word\Guess”,考虑到这一点,我尝试了使用这种不同的文件名表示的“git add”命令,并写道:

git add Word\ Guess

这给了我以下警告:

git add error 2

我不完全理解警告的意思,但这显然不是我想要的结果。很明显我错过了什么。在回复我在这篇文章顶部提到的类似问题时,评论者说问题的根源是文件不存在,你不能在创建文件之前添加文件,但在我的情况下,文件存在似乎很明显,因为程序功能齐全,已经成功上传到我的GitHub页面。我没抓住什么?

*编辑我现在变得更加困惑。在最后一个屏幕截图中,警告消息说:

if you added this path by mistake, you can remove it from the index with:
    git rm --cached Word Guess/bin

但是,在键入与Git Bash警告中显示的完全相同的命令后:

git rm --cached Word Guess/bin

我犯了和以前一样的错误

fatal: pathspec 'Word' did not match any files

git rm --cached Word\ Guess/bin

这给了我以下错误:

error: the following file has staged content different from both the file and the HEAD: 
Word Guess/bin
(use -f to force removal)

请参见下面的屏幕截图:

git add error 3

我现在完全不知道该怎么做了,我甚至无法撤销错误的命令,这让我很沮丧。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131401
文章 [ 1 ]  |  最新文章 3 年前
torek
Reply   •   1 楼
torek    4 年前

你的 Word Guess 目录(文件夹,如果您愿意)包含一个Git存储库。Git存储库不能包含另一个Git存储库,因此“外部”Git拒绝添加整个内部存储库。它确实增加了 某物 ,但它添加的不是Git存储库:而是一个 子模块 ,这是一个 提及 另一个Git存储库。

这使得外部Git充当所谓的 超级项目 。克隆超级项目时,超级项目包含对其他Git项目的引用,以及 git submodule init git submodule update --init 知道如何阅读“从何处克隆另一个Git项目”的说明并克隆它。A以后 git checkout --recursive git submodule update --checkout ,使用存储的有关 犯罪 将在子模块中签出。

要正确添加子模块,需要使用 git submodule add git add .你用 git添加 使现代化 子模块链接,但仅限于 之后 git子模块添加 正确添加子模块。如果你使用 git添加 在最初添加子模块时,您会得到我有时称之为“半途而废”的子模块:一个缺少关于Git在超级项目的其他克隆中应该在何处克隆子模块的说明的子模块 从…起 .如果没有这些信息,超级项目的新克隆就会知道它需要提交 a123456 (或者其他什么)的Git存储库,但不知道应该在哪里克隆另一个Git存储库 从…起 (除非你计划自己手动克隆子模块,否则这不是很有用,这就是为什么我称之为“半途而废”。)

在Git 1.5、1.6和1.7早期糟糕的旧时代,人们通常将子模块称为sob模块,因为工具太差了,以至于让人大哭。还是。。。不是很好,我认为有些人仍然使用这个短语。如果你真的想要一个子模块,请 真的确定吗 你想要一个子模块。