我有以下.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
答案 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