git .ignore not working in a directory

I have the following .gitignore file

# file named .gitignore system/application/config/database.php system/application/config/config.php system/logs modules/recaptcha/config/* 

However when I add any changes in config and recapcha.php, git status warns me as following. When I add any changes to database.php. it does not show it in status

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") 

How can I fix this?

Thanks in advance.

I am using git version 1.7.5.1 on Ubuntu 11.04

1

4 Answers

The files are already stored in your local commit tree. You'll need to first remove them from the repository. This can be done via:

git rm --cached system/application/config/config.php modules/recaptcha/config/recaptcha.php 

After that you'll need to make one more commit and you're good to go.

2

Do the following to trigger the gitignore

Step 1: Commit all your pending changes in the repo which you want to fix and push that.

Step 2: Now you need to remove everything from the git index in order to refresh your git repository. This is safe. Use this command:

git rm -r --cached . 

Step 3: Now you need to add everything back into the repo, which can be done using this command:

git add . 

Step 4: Finally you need to commit these changes, using this command:

git commit -m "Gitignore issue fixed" 
3

If your file is already in git before you add the directory to .gitignore git will keep tracking it. If you don't want it, do a "git rm" to remove it first.

2

I'm guessing yout .gitignore is not in the root of your working tree.

If you put a .gitignore in the same directory as system/application/config/config.php you can just use

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

The paths are relative to the current directory (or: .gitignore is a per-directory exclude/include file).

See man git-ignore

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like