Gitignore不起作用

10 浏览
0 Comments

Gitignore不起作用

我的.gitignore文件出了些问题,无论我怎么搜索也无法解决。这是我的文件内容:

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

它在目录master中,这是我的git仓库。我使用的是Git 1.8.4.2,因为我使用的是运行OSX 10.8.6的MacBook。

0
0 Comments

Gitignore not working的问题出现的原因可能是没有正确地将文件添加到.gitignore中,或者之前已经将文件纳入版本控制,所以.gitignore对该文件无效。解决方法是首先将文件名添加到.gitignore文件中,然后从Git缓存中移除该文件,最后提交更改。

具体的解决步骤如下:

Step 1

将文件名添加到.gitignore文件中。

Step 2

从Git缓存中移除文件,可以使用以下命令:

git rm --cached filename

如果要移除的是一个目录而不是一个文件,可以使用以下命令:

git rm -r --cached directoryname

Step 3

提交更改,可以使用以下命令:

git add filename

git commit -m "add filename to .gitignore"

这样做可以保持Git历史记录的干净,因为如果执行git rm -r --cached .并将所有文件重新添加并提交,会导致Git历史记录被污染(会显示在一个提交中添加了很多文件),不确定是否表达清楚,但希望你能理解这个意思。

如果发现.gitignore文件对某个文件无效,可以按照上述步骤将文件正确地添加到.gitignore中,并从Git缓存中移除该文件,最后进行提交。这样可以确保Git历史记录的干净和正确。

0
0 Comments

问题:gitignore不起作用的原因和解决方法

在使用Git时,有时候我们可能会遇到gitignore文件不起作用的情况。下面是一些关于如何解决这个问题的方法:

1. 如果要停止追踪一个已经被添加/初始化到仓库中的单个文件,但不从系统中删除该文件,请使用以下命令:

git rm --cached 文件名

2. 如果要停止追踪所有已经在.gitignore中的文件,可以按照以下步骤操作:

a. 首先,提交任何未完成的代码更改;

b. 然后运行以下命令:git rm -r --cached .,这将从索引(暂存区)中移除任何已更改的文件;

c. 最后运行:git add .,将更新后的文件重新添加到索引中;

d. 提交更改:git commit -m ".gitignore现在起作用了"

需要注意的是,合并分支回主分支或移动指针是很重要的,因为在我尝试这个方法时,我丢失了两个功能分支。幸运的是,我没有丢失任何工作,所有最近从工作分支更新的内容都重置到了主分支,但根据你的设置,这种行为可能是不可取的。

如果要使用这个命令从缓存中删除文件夹而不是文件,可以使用git rm -r --cached 文件夹名命令。

某些情况下git rm --cached 文件名命令非常好用,而且没有问题。

对于有些人来说,这个方法可能不起作用。它只能删除那些在某些文件夹中应该被忽略的文件,而忽略了大部分文件夹中的.uasset文件。

有人认为这样做需要一个新的提交才能让.gitignore起作用,这是一种hack的方式。

以上是解决gitignore不起作用的一些方法,可以根据具体情况选择适合自己的方法。希望能帮助到你!

0
0 Comments

Gitignore not working 的问题出现的原因是,即使将文件/文件夹添加到.gitignore中,它们也不会自动从版本控制中删除。这是因为它们已经存在于仓库中,需要手动删除。解决方法是先提交所有更改,然后执行以下命令:

git rm -rf --cached .
git add .

这将从仓库中移除所有文件,并重新添加它们(这次会遵循.gitignore的规则)。

最重要的一点是,已经提交的文件也需要从项目中移除,否则它们将不会被忽略。所以总结一下解决方法:第一步,将规则添加到本地的.gitignore文件中;第二步,删除不需要的文件夹(比如bin/obj)并提交更改。

如果已经将文件/文件夹添加到.gitignore中,可以尝试使用以下命令来撤销它们:

git checkout folder_to_ignore/*

但是如果这些文件/文件夹已经被提交,这个命令将不起作用,只有在它们被暂存的情况下才有效(除非强制添加)。

如果在推送更改到GitHub时仍然没有起作用,可以尝试删除.gitignore文件,然后重新拉取和推送到远程仓库。

某些情况下了一个更简化的解决方法,即为git添加一个“git ignore”命令,这样我们可以随时使用git ignore path/file来忽略文件。

另外,有人遇到了一个问题,即当执行git rm -rf --cached命令后,.gitignore中指定忽略的文件仍然出现在更改的文件列表中。这可能是因为.gitignore的模式不正确。

如果想要从文件夹中移除文件,可以使用以下命令:

git rm -rf --cached foldername
git add foldername

这样就不需要提交其他文件。

需要注意的是,-rf参数的作用是递归地强制删除文件。

另外还有一些用户提到了一些问题,比如这个方法会删除git配置信息,这可能是个别情况下发生的。另外,有人认为这种方法需要进行代码提交,但实际上这只是为了使git忽略某个文件,不需要进行代码提交。

如果.gitignore不起作用,可以尝试执行上述命令来解决问题。如果仍然无法解决,可能需要检查.gitignore的规则是否正确,并确保执行了正确的命令。

0