吉蒂格尔没有工作

问题描述 投票:154回答:7

我的.gitignore文件由于某种原因无法正常工作,并且没有任何谷歌搜索能够修复它。这是我有的:

*.apk
*.ap_
*.dex
*.class
**/bin/
**/gen/
.gradle/
build/
local.properties
**/proguard/
*.log

它位于master目录中,这是我的git repo。我正在运行Git 1.8.4.2因为我在MacBook上运行OSX 10.8.6。

git gitignore
7个回答
421
投票

版本控制中的文件/文件夹不仅仅是因为您将它们添加到.gitignore而自行删除。它们已经存储在存储库中,您必须将其删除。你可以这样做:

(记得在执行此操作之前提交您已更改的所有内容。)

git rm -rf --cached .
git add .

这会从存储库中删除所有文件并将其添加回来(这次是尊重.gitignore中的规则)。


85
投票

要取消已经添加/初始化到存储库的单个文件,即停止跟踪文件但不从系统中删除它:git rm --cached filename

要解开现在.gitignore中的每个文件:

首先提交任何未完成的代码更改,然后运行以下命令:

git rm -r --cached .

这将从索引(暂存区域)中删除所有已更改的文件,然后运行:

git add .

承诺:

git commit -m ".gitignore is now working"

5
投票

在我的情况下,当我在记事本中打开文件时,文件开头的空白区域显而易见,在Visual Studio Code中并不明显。


4
投票

在尝试按照这个问题的答案(可能是因为我必须在视觉工作室项目中做到这一点)之后,我想找到更容易的路径是

  1. 将我不想再追踪的文件剪切并粘贴到临时位置
  2. 提交“删除”这些文件
  3. 提交修改.gitignore以排除我暂时移动的文件
  4. 将文件移回文件夹。

我发现这是最直接的方式(至少在视觉工作室,或者我会假设其他基于IDE的环境,如Android Studio),而不是意外地用一个非常普遍的git rm -rf --cached .射击自己的脚我正在研究的视觉工作室项目没有加载。


3
投票

在我看来,.gitignore行末尾的空格是原因。所以要注意.gitignore中的空白!


1
投票

我解决了我的问题,做了以下事情:

首先,我是一个Windows用户,但我遇到了类似的问题。所以,我在这里发布我的解决方案。

有一个简单的原因,为什么有时.gitignore不会像它应该的那样工作。这是由于EOL转换行为。

这是一个快速解决方案

编辑> EOL转换> Windows格式>保存

你可以责怪你的文本编辑器设置。

例如:

由于我是Windows开发人员,我通常使用Notepad ++来编辑我的文本,而不像Vim用户。

所以当我使用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

如果我使用默认记事本打开相同的文件,这就是我得到的

## 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 

所以,你可能已经通过查看输出猜测了。 .gitignore中的所有内容都变成了一个内容,因为在开始时有一个##,就好像所有内容都被评论一样。

解决这个问题的方法很简单:只需使用Notepad ++打开.gitignore文件,然后执行以下操作

编辑> EOL转换> Windows格式>保存

下次使用Windows默认记事本打开同一文件时,所有内容都应正确格式化。试一试,看看这是否适合你。


0
投票

git reset --hard适合任何人吗?我不是说这是一个很好的解决方案,它似乎只是我第一次尝试工作。

© www.soinside.com 2019 - 2024. All rights reserved.