我的.gitignore文件由于某种原因无法正常工作,并且没有任何谷歌搜索能够修复它.这是我有的:
*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log
Run Code Online (Sandbox Code Playgroud)
它在目录中master,这是我的git repo.我正在运行Git 1.8.4.2因为我在MacBook上运行OSX 10.8.6.
Ahm*_*mad 502
版本控制中的文件/文件夹不仅仅是因为您将它们添加到了文件夹中而自行删除.gitignore.它们已经存储在存储库中,您必须将其删除.你可以这样做:
(记得在执行此操作之前提交您已更改的所有内容.)
git rm -rf --cached .
git add .
Run Code Online (Sandbox Code Playgroud)
这将从存储库中删除所有文件并将其添加回来(这次是尊重您的规则.gitignore).
Nic*_*las 94
要取消已经添加/初始化到存储库的单个文件,即停止跟踪文件但不从系统中删除它: git rm --cached filename
要解开现在位于您的所有文件.gitignore:
首先提交任何未完成的代码更改,然后运行以下命令:
git rm -r --cached .
Run Code Online (Sandbox Code Playgroud)
这将从索引(暂存区域)中删除所有已更改的文件,然后运行:
git add .
Run Code Online (Sandbox Code Playgroud)
承诺:
git commit -m ".gitignore is now working"
Run Code Online (Sandbox Code Playgroud)
sul*_*rza 30
@Ahmad 的答案是有效的,但如果您只想 git 忽略 1 个特定文件或几个文件,请按照@Nicolas 的建议进行操作
将文件名添加到 .gitignore 文件
[从git缓存中删除文件名(文件路径)
git rm --cached filename
提交更改
git add filename
git commit -m "add filename to .gitignore"
git rm -r --cached .并全部添加并提交它们,它将污染您的 git 历史记录(它会显示您在一次提交时添加了很多文件)不确定我是否正确表达了我的想法,但希望您明白这点小智 30
在cmd窗口中使用下面的git命令,
git rm --cached filename
解释:
git-rm- 从工作树和索引中删除文件
--cached
使用此选项仅从索引中取消暂存和删除路径。工作树文件,无论是否修改,都将被保留。
--来自https://git-scm.com/docs/git-rm
Dee*_*ews 12
我用了一些东西来.gitignore为我生成共同点,我遇到了这个。阅读@Ozesh 答案后,我在 VS Code 中打开,因为它在右下角有一个很好的指示器,显示行尾类型。这是LF,所以我按照建议转换为CRLF,但没有骰子。
然后我查看了行尾,注意到它是使用 UTF16 保存的。所以我使用 UTF8 编码重新保存,瞧,它起作用了。我认为 CRLF 并不重要,所以我将它改回 LF 以确保它仍然有效。
当然,这不是 OP 问题,因为他已经提交了文件,因此它们已经被编入索引,但我想我会分享以防其他人偶然发现这一点。
TLDR ; 如果您还没有提交文件并且 .gitignore 仍然没有得到尊重,那么检查文件编码,并确保它的 UTF8,如果这不起作用,那么也许尝试弄乱行尾。
在钻了一些兔子洞试图遵循这个问题的答案之后(也许因为我必须在Visual Studio项目中这样做),我发现更简单的方法是
剪切并粘贴我不想再跟踪的文件到临时位置
提交那些文件的“删除”
提交对的修改,.gitignore以排除我临时移动的文件
将文件移回到文件夹中。
我发现这是解决问题的最直接的方法(至少在视觉工作室中,或者我假设其他基于IDE的环境如Android Studio),而不会意外地在自己的脚上开枪git rm -rf --cached .,之后我正在处理的Visual Studio项目未加载。
我通过执行以下操作解决了我的问题:
首先,我是一名Windows用户,但我也遇到过类似的问题。所以,我在这里发布我的解决方案。
有时 .gitignore 无法按预期工作有一个简单的原因。这是由于 EOL 转换行为造成的。
这是一个快速解决方案
编辑 > EOL 转换 > Windows 格式 > 保存
您可以将此归咎于您的文本编辑器设置。
例如:
由于我是一名 Windows 开发人员,因此与 Vim 用户不同,我通常使用Notepad++来编辑文本。
那么发生的情况是,当我使用 Notepad++ 打开 .gitignore 文件时,它看起来像这样:
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# See https://help.github.com/ignore-files/ for more about ignoring files.
# User-specific files
*.suo
*.user
*.userosscache
*.sln.docstates
*.dll
*.force
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
Run Code Online (Sandbox Code Playgroud)
如果我使用默认记事本打开同一文件,这就是我得到的
## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # See https://help.github.com/ignore-files/ for more about ignoring files. # User-specific files *.suo *.user *.userosscache
Run Code Online (Sandbox Code Playgroud)
因此,您可能已经通过查看输出猜到了。.gitignore 中的所有内容都已成为一行,并且由于开头有一个 ##,因此它的作用就好像所有内容都被注释了一样。
解决这个问题的方法很简单:只需使用 Notepad++ 打开 .gitignore 文件,然后执行以下操作
编辑 > EOL 转换 > Windows 格式 > 保存
下次使用 Windows 默认记事本打开同一文件时,所有内容都应正确格式化。尝试一下,看看这是否适合您。
我已经完成了echo node_modules >> .gitignore,但没有奏效。
出于某种原因,终端 fromvscode将文件保存在UCS-2 LE BOMgit 中,似乎不接受。
我打开并将文件转换为UTF-8使用Notepad++
它现在有效。
我认为他们需要解决这个问题,因为echo "filetoignore" >> .gitignore实际上看起来很方便
| 归档时间: |
|
| 查看次数: |
150438 次 |
| 最近记录: |