07-19-2023, 03:58 PM
I need to ignore files in git! I don't think ignore is the right word actually; I want the files to be in git, but I don't want to be able to commit changes to them. This may seem like a weird thing to some, but there are many, many instances that I need this functionality. The one instance I need it for now is when using git with a CMS; the CMS won't work without files that it is constantly changing, but I don't want those files to ever be committed after the initial commit. (This is very easy to do with SVN and Tortoise).
WorkFlow:
1. Get All Files needed to run the app.
2. Ignore specified directories / files when committing.
Here is what I've tried:
1. `.gitignore` -- the files never enter git. If the file is already in
cache the .gitignore file doesn't do anything.
2. `/.git/info/exclude` -- same problem as .gitignore, but only for
the local repo.
3. Branching -- master => LocalIgnores => WorkingBranch. When the
Working branch is merged with master, the changes made from
LocalIgnores end up in master. Also, when you checkout one of the
new branches, the deleted files get deleted instead of ignored.
4. Thirdparty File Structure -- Thirdparty directory on the root
node that holds a copy of all important thirdparty files so they can
be copied into the working directory that utilizes the .gitignore
file. (This one works, but there has to be an easier / better
solurtion).
WorkFlow:
1. Get All Files needed to run the app.
2. Ignore specified directories / files when committing.
Here is what I've tried:
1. `.gitignore` -- the files never enter git. If the file is already in
cache the .gitignore file doesn't do anything.
2. `/.git/info/exclude` -- same problem as .gitignore, but only for
the local repo.
3. Branching -- master => LocalIgnores => WorkingBranch. When the
Working branch is merged with master, the changes made from
LocalIgnores end up in master. Also, when you checkout one of the
new branches, the deleted files get deleted instead of ignored.
4. Thirdparty File Structure -- Thirdparty directory on the root
node that holds a copy of all important thirdparty files so they can
be copied into the working directory that utilizes the .gitignore
file. (This one works, but there has to be an easier / better
solurtion).