我的 .gitignore 文件被忽略,应该忽略的文件仍然可见。
user@host ~/workdir % git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: .htaccess
# modified: application/controllers/statistics.php
#
no changes added to commit (use "git add" and/or "git commit -a")
user@host ~/workdir % cat .gitignore
.htaccess
application/config/config.php
application/config/database.php
user@host ~/workdir %
这些文件处于版本控制状态,但有明显的改变,我不想推送。 git rm ... 不是一个选项,因为文件应该是版本控制(文件中的其他设置)。我只是不想对这些文件进行更改。
答案 0 :(得分:54)
我有同样的问题:我想要每个存储库不同的.htaccess文件然后我不能,因为htaccess文件已经添加到存储库。它现在正在工作,我可以从任何版本更改任何.htaccess文件,而无需git推送它们。当Marc说“你需要首先删除它,然后才能被忽略。”这是正确的。这可以使用git rm完成。
我按此顺序继续:
这显然会删除你的.htaccess文件
然后你就完成了:无论你做什么改变,都不会推动.htaccess了。困难的部分是按照步骤顺序......
希望这很清楚
答案 1 :(得分:37)
在anybug's steps noted here之后,我的git仍然跟踪.htaccess,这有助于:
git update-index --assume-unchanged .htaccess
要还原:
git update-index --no-assume-unchanged .htaccess
答案 2 :(得分:13)
既然你想:
.htaccess
保留在Git仓库中(无git rm
)使用filter driver,它将:
.htaccess
在提交阶段.htaccess
然后,您可以对涂抹脚本将加密的加密文件进行版本控制:
您可以在不会推送的特殊分支中对加密的敏感数据进行版本控制 即使您以某种方式推送该文件,损坏也会受到限制,因为只有您的工作站具有解密所述文件所需的私钥。
答案 3 :(得分:9)
假设以下是.gitignore
文件的内容。在这里,.htaccess
位于项目的根目录中。
/.htaccess
application/config/config.php
application/config/database.php
让我们运行以下命令来忽略.htaccess
,config.php
和database.php
文件。
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged .htaccess
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/config.php
badelal143@gmail.com:work-dir$ git update-index --assume-unchanged application/config/database.php
如果您想再次开始跟踪:
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged path/to/file
e.g。
badelal143@gmail.com:work-dir$ git update-index --no-assume-unchanged .htaccess
答案 4 :(得分:8)
忽略git中的文件并不意味着你不会推送它们。这意味着您不会版本控制它们。如果您不想推送,我建议您创建一个本地分支,其中包含本地计算机的内容,然后将必要的更改合并到您将推送到远程的分支。
我认为你已经add
编辑了你的文件,现在正试图忽略它们。
答案 5 :(得分:5)
似乎.htaccess
文件已添加到版本控件中。您需要先删除它,然后才能忽略它。这可以使用git rm
答案 6 :(得分:3)
我一直这样做。我从我的回购中的配置文件开始,然后决定我不想在那里。
您可以使用
从回购中删除某些内容git rm --cached <<filename>>
答案 7 :(得分:2)
这个问题困扰了我好几天。 .htaccess
文件已受版本控制,并已被修改。