Reputation: 3576
My .gitignore file gets ignored and the files which should be ignored are still visible.
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 %
The files are in version control, but with sensible changes I dont want to push. git rm ... is not an option because the files should be in version controll (with other settings in the files). I just dont want to push my changes on this files.
Upvotes: 35
Views: 47382
Reputation: 6213
after anybug's steps noted here my git still kept track of .htaccess and this helped:
git update-index --assume-unchanged .htaccess
To revert back:
git update-index --no-assume-unchanged .htaccess
Upvotes: 51
Reputation: 71
I do this all the time. I start with configuration files in my repo then decide that I don't want them in there.
You can remove something from your repo by using
git rm --cached <<filename>>
Upvotes: 5
Reputation: 101
Suppose the below is the content of .gitignore
file. Here, .htaccess
is in the project's root directory.
/.htaccess
application/config/config.php
application/config/database.php
Let's run the below command to ignore the .htaccess
, config.php
and database.php
files.
[email protected]:work-dir$ git update-index --assume-unchanged .htaccess
[email protected]:work-dir$ git update-index --assume-unchanged application/config/config.php
[email protected]:work-dir$ git update-index --assume-unchanged application/config/database.php
If you want to start tracking it again:
[email protected]:work-dir$ git update-index --no-assume-unchanged path/to/file
e.g.
[email protected]:work-dir$ git update-index --no-assume-unchanged .htaccess
Upvotes: 10
Reputation: 1328982
Since you want to:
.htaccess
in the Git repo (no git rm
)use a filter driver which will:
.htaccess
with private data.htaccess
from all sensitive datayou can then version an encrypted file that your smudge script will:
You can version that encrypted sensible data in a special branch you won't push.
Even if you did push that file somehow, the damage would be limited, since only your workstation has the private key needed to decrypt said file.
Upvotes: 14
Reputation: 721
i had same problem: i wanted different .htaccess file per repository then i couldn't because htaccess file had already been added to repository. It's working now, i can change any of the .htaccess file from any version without getting git pushing them. Marc is right when he says "You need to remove it first, before it can be ignored. This can be done using git rm".
i proceeded in this order:
this will obviously remove your .htaccess file
then you're done: whatever changes you make into .htaccess won't be pushed anymore. The hard part is following steps order...
hope this is clear
Upvotes: 72
Reputation: 72855
Ignoring files in git doesn't mean that you won't push them. It means that you won't version control them. If you don't want to push then, I suggest you create a local branch which will contain stuff for the local machine and then merge necessary changes to a branch which you'll push to remote.
I think you've already add
ed your files and are now trying to ignore them.
Upvotes: 8
Reputation: 3560
It seems that the .htaccess
file has already been added to the version control. You need to remove it first, before it can be ignored. This can be done using git rm
Upvotes: 8
Reputation: 186098
This one bugged me for days. The .htaccess
file is already under version control and has been modified.
Upvotes: 2