Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git没有跟踪.gitignore,但是.gitignore本身在本地工作_Git_Github - Fatal编程技术网

git没有跟踪.gitignore,但是.gitignore本身在本地工作

git没有跟踪.gitignore,但是.gitignore本身在本地工作,git,github,Git,Github,我的项目中有一个.gitignore文件,它与本地git repo配合得很好。当我推送项目时,不知何故,.gitignore文件没有被推送到远程分支。当我编辑本地.gitignore文件时,假设我在其中注释“.gradle”并执行git status,git会识别此更改并向我显示.gradle文件夹未被跟踪。我通读了与.gitignore相关的问题,并尝试了git rm--cached.gitignore,我得到了这个- 致命:pathspec“.gitignore”与任何文件都不匹配 …也没什

我的项目中有一个.gitignore文件,它与本地git repo配合得很好。当我推送项目时,不知何故,.gitignore文件没有被推送到远程分支。当我编辑本地.gitignore文件时,假设我在其中注释“.gradle”并执行
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规则的影响。