git .ignore不在目录中工作

时间:2011-05-17 12:07:05

标签: git

我有以下.gitignore文件

# file named .gitignore

system/application/config/database.php
system/application/config/config.php
system/logs
modules/recaptcha/config/*

然而,当我在config和recapcha.php中添加任何更改时,git status警告我如下。 当我向database.php添加任何更改时。它没有显示状态

shin@shin-Latitude-E5420:/var/www/myapp$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   modules/recaptcha/config/recaptcha.php
#   modified:   system/application/config/config.php
#
no changes added to commit (use "git add" and/or "git commit -a")

我该如何解决这个问题?

提前致谢。

我在Ubuntu 11.04上使用git版本1.7.5.1

4 个答案:

答案 0 :(得分:97)

文件已存储在本地提交树中。你需要从存储库中删除它们,这可以通过git rm --cached system/application/config/config.php modules/recaptcha/config/recaptcha.php完成,之后你需要再做一次提交,然后你就可以了。

答案 1 :(得分:10)

执行以下操作以触发 gitignore

步骤1: 在您要修复的存储库中提交所有待处理的更改,然后推送。

步骤2: 现在,您需要从git索引中删除所有内容,以刷新git存储库。这很安全。使用以下命令:

git rm -r --cached .

第3步: 现在,您需要将所有内容重新添加到存储库中,可以使用以下命令完成此操作:

git add .

第4步: 最后,您需要使用以下命令来提交这些更改:

git commit -m "Gitignore issue fixed"

答案 2 :(得分:9)

如果您的文件在将目录添加到.gitignore之前已经在git中,git将继续跟踪它。如果您不想要它,请先执行“git rm”将其删除。

答案 3 :(得分:3)

我猜你.gitignore不在你工作树的根目录中。

如果你将.gitignore放在与system / application / config / config.php相同的目录中,你可以使用

echo config.php >> system/application/config/.gitignore

路径相对于当前目录(或:.gitignore是每个目录排除/包含文件)。

见man git-ignore