题
我已经创建了一个.gitignore文件在文件夹。git文件夹 但我仍然得到的文件我想要忽略这样做时重新扫描储存库。
这是内容的文件。
# Ignored files
*.suo
*.user
bin
obj
*.pdb
*.cache
*_svn
*.svn
*.suo
*.user
*.build-res
TestResults
_ReSharper*
我做错了什么?那里是文件的假设是什么位置?
解决方案
您需要确保您仍然看到目前未提交或上演文件。
如果您删除它们(git rm
或git rm --cached
),然后将它们添加为私人文件,那么他们将被忽略。
其他提示
您的文件看起来不错。只要确保你没有任何空白的每一行的开头,我花了4个小时找到我的原因是的.gitignore不能正常工作;原因是当然一个cut'n'paste问题,即我的空间垂直线在文件的开头。
您应该确保你的.gitignore文件真的淘到你不想要的东西之前要小心git commit -a
。无论是与git add *.cpp *.h
标记每个文件(或使用通配符)或 - 就像我喜欢 - 开发你的的.gitignore你的进展,并与git status
commiting之前,请务必检查
如果您要仔细检查你的.gitignore真正起作用,尝试
git ls-files --others -i --exclude-standard
这应该列出所有你正在忽略的文件。
要清理掉你已经添加的文件(可能使用git add .
,一个错误我们都会在一开始=]),你可以不喜欢的 @ VonC 说:
无论运行
git rm <filename>
或
git rm --cached <filename>
清理掉所有你无意中添加的文件的另一种选择是完全清洁你的资料库,然后再重新添加的一切。如果你想清除停留区的一切,您可以运行
git --rm cached .
但要记住不要运行git add .
,直到你做出保证git状态只列出存储库中的你真正想要的文件。
用git另一个非常有用的是,使用通配符时,不需要的文件的路径。如果你列出你忽略的文件,看看您要删除所有*.suo
和*.log
文件,只需运行
git rm --cached *.suo *.log
和git的需要找到在你的仓库中的所有文件的保健相匹配的签名,无论在树他们。
我试过多种方式得到这个工作,它终于很简单:
您必须先提交的.gitignore!
另外,如果你使用TortoiseGIT - GITEX提交工具,有一个选项,编辑或忽略的文件
您的权利中找到它。的.gitignore应在同一个文件夹,则文件夹git的所在的位置。文件中还看起来是正确的。然而,我没有在顶部有一个注释行..
当我看这个,我会以为你忘了你的承诺文件忽略
没有一个--rm缓存的解决方案为我工作。需要将文件编码为ASCII/ANSI。我改变了的线路的结局,但这仅仅没有解决它。我找不到url了这些指令(对不起,原来的海报!) 但这个工作对我说:
- 安装的记事本++如果你不用它了。Textpad应 还工作,但是,我使用的记事本++.
- 打开你的.gitignore带记事本++.
- 点击查看|显示符号显示所有的字符。你可能会看到CR如果在每个月底线。
- 做一个搜索和替换(按ctrl+h)确保延长检查(下我们手头角)。搜索 和替换 .你会看到的所有CR如果改变只是LF。
- 现在点击编码|编码在ANSI。
- 保存文件和出口。
从命令提示在窗户或命令的提示,无论你喜欢的,当你做git状态,它不应该显示的文件。gitignore.