git没有跟踪.gitignore,但是.gitignore本身在本地工作
我的项目中有一个.gitignore文件,它与本地git repo配合得很好。当我推送项目时,不知何故,.gitignore文件没有被推送到远程分支。当我编辑本地.gitignore文件时,假设我在其中注释“.gradle”并执行git没有跟踪.gitignore,但是.gitignore本身在本地工作,git,github,Git,Github,我的项目中有一个.gitignore文件,它与本地git repo配合得很好。当我推送项目时,不知何故,.gitignore文件没有被推送到远程分支。当我编辑本地.gitignore文件时,假设我在其中注释“.gradle”并执行git status,git会识别此更改并向我显示.gradle文件夹未被跟踪。我通读了与.gitignore相关的问题,并尝试了git rm--cached.gitignore,我得到了这个- 致命:pathspec“.gitignore”与任何文件都不匹配 …也没什
git status
,git会识别此更改并向我显示.gradle文件夹未被跟踪。我通读了与.gitignore相关的问题,并尝试了git rm--cached.gitignore
,我得到了这个-
致命:pathspec“.gitignore”与任何文件都不匹配
…也没什么区别。这是怎么回事?我以前曾将几个新项目推送到远程分支,这是git第一次不跟踪.gitignore文件
更新(1/19):
我尝试了git add.gitignore
,得到了这个-
以下路径被一个.gitignore文件忽略:
.gitignore
我检查了.gitignore文件,以确保它没有导致忽略此文件的任何路径。我记得读过一篇关于全局.gitignore文件的文章……所以我找了一下,找到了一个文件~/.gitignore\u global,里面有.gitignore!我评论说,现在git能够跟踪文件了。我不确定该文件是如何进入全局.gitignore的。A
.gitignore
文件与任何其他文件一样。为了让Git跟踪它,您需要使用Git add
添加它,以便Git开始跟踪它。Git在内部使用它来构造要忽略的文件列表与此无关
由于您试图使用git rm
删除它,而git告诉您“'.gitignore
'与任何文件都不匹配”,这显然表明.gitignore
文件从未添加到索引中
因此,添加并提交文件,以便开始跟踪它:
git add .gitignore
git commit
.gitignore
文件与任何其他文件类似。为了让Git跟踪它,您需要使用Git add
添加它,以便Git开始跟踪它。Git在内部使用它来构造要忽略的文件列表与此无关
由于您试图使用git rm
删除它,而git告诉您“'.gitignore
'与任何文件都不匹配”,这显然表明.gitignore
文件从未添加到索引中
因此,添加并提交文件,以便开始跟踪它:
git add .gitignore
git commit
Git可以完全使用本地文件,即使它不跟踪它进行源代码控制。要跟踪它,请运行
git add.gitignore
,除非.gitignore
位于.gitignore
中。由于shell扩展的工作方式,git add*
不会添加点文件git rm
如果git没有跟踪该文件,则该文件不起作用。git可以完全使用本地文件,即使它没有跟踪该文件进行源代码管理。要跟踪它,请运行git add.gitignore
,除非.gitignore
位于.gitignore
中。由于shell扩展的工作方式,git add*
不会添加点文件<如果文件未被git跟踪,code>git rm将不起作用。考虑到OP已经运行了git status
,并且没有提到看到.gitignore
,我认为.gitignore
本身可能在.gitignore
(Alexander Huszagh在对该问题的评论中也提供了这种可能性)。在这种情况下,git add.gitignore
将无法工作,直到文件被编辑为不再排除自身(或者使用了-f
,但这在这里很愚蠢)我更新了我的问题…它是全局gitignore文件…仍然是一个谜,为什么这个文件会有那个条目…我没有改变任何东西,并且在过去成功地用.gitignore文件推送了新项目。我会把你的答案标记为正确答案…因为它让我找到了答案!在这些项目添加gitignore后,全局忽略文件可能已更改。已跟踪文件的项目将不会受到新的忽略规则的影响。鉴于OP已运行git status
,并且没有提到在其中看到.gitignore
,我认为.gitignore
很可能是.gitignore
本身在中(正如Alexander Huszagh在对该问题的评论中也提出的可能性)。在这种情况下,git add.gitignore
将无法工作,除非该文件被编辑为不再排除自身(或者使用了-f
,但这在这里是愚蠢的)我更新了我的问题…它是全局gitignore文件…仍然是一个谜,为什么这个文件会有这个条目…我没有改变任何东西,并且在过去成功地用.gitignore文件推送了新项目。不过我会将你的答案标记为正确答案…因为它让我找到了修复方法!全局ignore文件可能在这些项目之后发生了更改cts已添加gitignore。已跟踪文件的项目将不受新的ignore规则的影响。