Git: File that must be distributed, but ignored /

2019-06-20 09:11发布

问题:

Possible Duplicate:
git: can i commit a file and ignore the content changes?

I have a simple problem, and I hope there's a simple solution.

Using Git (and Tower, great app), I have a repository that has a file that everyone needs to download when they clone the repo, BUT that file should never be reuploaded with changes (because it's a configurtion file, with database-specific usernames / passwords, and paths) - the changes are made only when used locally.

What I want to do is ignore whatever change I made locally to that file, so the file won't get updated when I push changes to my repo. How can this be achieved?

It should be noted that:

  1. When I clone the repo, the file shows up, but when I ignore it (local only, not via .gitignore) I have to untrack it, and when I do and push changes back to the server, anyone that clones the repo will NOT download the file << undesired behavior.

  2. If I ignore the file but I DON'T untrack it, the file still shows up in my working directory, waiting to be commited << undesired behavior.

回答1:

Commit an example file, gitignore the real name, and have your contributors copy the example into the proper location, then configure it. Alternately, provide a setup script that copies the example and does those steps.



回答2:

This is properly addressed with smudge/clean scripts.

Alternatively, scripts that do the deploy reset the user names and passwords.

Bending tracking and ignoring is not the way to solve this issue.

Hope this helps.