Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.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
.gitignore不起作用_Git - Fatal编程技术网

.gitignore不起作用

.gitignore不起作用,git,Git,我的repo根目录下有一个.gitignore文件。.gitignore文件具有以下模式来排除已编译的Python文件,这是文件中唯一的一行 *.pyc 现在,当我在回购协议的根部做以下操作时 git init git add . git status 它显示它仍然跟踪.pyc文件,并尝试将其添加为新文件。请参见下面的输出 系统信息:Windows7,cygwin 注意:此问题显然与已跟踪的被忽略文件无关。我还在.gitignore文件中尝试了DOS和Unix风格的行结尾 git状态给出

我的repo根目录下有一个
.gitignore
文件。
.gitignore
文件具有以下模式来排除已编译的Python文件,这是文件中唯一的一行

*.pyc
现在,当我在回购协议的根部做以下操作时

git init
git add . 
git status 
它显示它仍然跟踪
.pyc
文件,并尝试将其添加为新文件。请参见下面的输出

系统信息:Windows7,cygwin

注意:此问题显然与已跟踪的被忽略文件无关。我还在
.gitignore
文件中尝试了DOS和Unix风格的行结尾

git状态
给出:

# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#   new file:   .gitignore
#   new file:   feedapp/__init__.py
#   new file:   feedapp/appconfig.py
#   new file:   feedapp/appconfig.pyc
分支主机上的
#
#
#初始提交
#
#要提交的更改:
#(使用“git rm--cached…”取消存储)
#
#新文件:.gitignore
#新文件:feedapp/\uuuuu init\uuuuuuu.py
#新文件:feedapp/appconfig.py
#新文件:feedapp/appconfig.pyc

如何进一步排除故障

.gitignore
仅适用于未跟踪的文件。如果您正在跟踪
.pyc
,则
.gitignore
将不适用。使用
git rm
删除
.pyc
,下次执行
git status
时,它(以及任何其他文件)不会显示在未跟踪文件列表中,也不会自动添加


否则,如果需要忽略已受版本控制的文件,请更新索引以忽略对已受版本控制的文件所做的更改:

git update-index --assume-unchanged <files>
git更新索引--假定未更改

有关更多信息,请参阅和。

手动操作系统

gitignore文件故意指定git应该忽略的**未跟踪文件**。请注意,所有gitignore文件实际上只涉及git尚未跟踪的文件
git rm文件
将停止跟踪它们。我找不到从repo中删除所有被忽略文件的方法

git init
git add . 
git status 

正如您所指出的,这些文件似乎并不存在于回购协议中。在这种情况下,您的
git
的行为与文档或我的行为都不匹配,我无法帮助您

$ mkdir foo
$ cd foo
/home/ikegami/foo
$ mkdir feedapp
$ touch feedapp/__init__.py
$ touch feedapp/appconfig.py
$ touch feedapp/appconfig.pyc
$ echo '*.pyc' > .gitignore
$ git init
Initialized empty Git repository in /home/ikegami/foo/.git/
$ git add .
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   .gitignore
#       new file:   feedapp/__init__.py
#       new file:   feedapp/appconfig.py
#
$ 
在这种情况下,您可以使用

git rm --cached -r .
git add .

我遇到了完全相同的问题——即使我在第一次添加任何内容之前准备了一个.gitignore文件。 我发现问题在我忽略文件的空白处。 请不要在忽略文件中添加任何空白,然后重试。我想一切都会好起来的。
祝你好运,我也有同样的问题。我发现运行
“someText”>.gitignore
生成的文件具有奇怪的编码。我将其更改为UTF-8,然后一切正常。

检查.gitignore文件中的行尾。在OSX回购协议中,我的使用了CR行结尾。切换到LFs后,一切又恢复正常

perl -p -e 's/\r/\n/g'  < .gitignore > .gitignore-new
mv .gitignore-new .gitignore
perl-p-e's/\r/\n/g'<.gitignore>.gitignore新建
mv.gitignore new.gitignore
控制台管理员可能希望改用
sed


背景:停电后,我从Windows存储库复制了我的工作副本。

git status的输出是什么?这会有很大帮助。在git添加之前,.gitignore文件是否已就位并已填充。?您从
git rm--cached-r中得到了什么;吉特加;git status
您的
.gitignore
文件中包含
*.pyc
的行末尾是否有空格?我刚刚做了一个小测试,它似乎很重要。请参阅下面的帖子,它对我很好:这些文件还没有被跟踪……根据您的“git状态”输出,它们是被跟踪的。@Gnu工程师,它们被跟踪了。它们位于索引中,这是由git add创建的暂存区域。它们是否在创建
.gitignore
之前放置在那里尚不可知。ikegami:问题已解决。这似乎是由于行尾的格式。我用编辑器创建了.gitignore,后来通过echo重新创建。我现在做了一个d2u,它成功了。谢谢你的帮助,谢谢!不知道的git更新索引-真的很有用!我的理解是git还没有跟踪任何repo中的文件。我试图在忽略*.pyc文件的情况下进行初始提交。ikegami:我的结论与你的相同。一直以来,我已经做过好几次了。我怀疑这与cygwin有关,但这是一个非常简单的模式,它必须支持……@Gnu Engineer,我在家里使用git而不是cygwin。我稍后会在那里试一试。现在,我在回答的底部添加了一个可能的原因和解决方案。使用
git rm--cached-r时要小心。
它实际上会删除当前目录中的所有内容,同时确保没有BOM!(字节顺序标记)我也一样。如果您使用的是
vim
,请执行
:set ff=unix
。出于某种原因,它被设置为
mac