Does it prevent the initial .gitignore from being commited too?
For example, what if a file name had sensitive information. It’s bad practice, but someone might want to ignore the file while also hiding the ignore rule itself.
.gitignore doesn’t prevent things from being committed. It just tells git to ignore files that aren’t already being tracked. And you can easily override that with -f. Putting .gitignore inside of .gitignore will ignore itself (if it’s not already tracked).
If you’re an end user, not a build tool, you’d rather want to place that in .git/info/exclude inside the repo. It’s effectively another gitignore file, which won’t be committed.
But if you do need something like this for a build tool, then yeah, you can create a file /test/.gitignore with these contents:
real-person-first-last.json
.gitignore
Then running git add . just adds /test/fake-person-first-last.json.
Both /test/.gitignore and /test/real-person-first-last.json would be ignored right away.
Does it prevent the initial .gitignore from being commited too?
For example, what if a file name had sensitive information. It’s bad practice, but someone might want to ignore the file while also hiding the ignore rule itself.
/test/fake-person-first-last.json /test/real-person-first-last.jsonSomeone might want to selectively omit the second file while keeping the first, but not show what they are hiding.
.gitignore doesn’t prevent things from being committed. It just tells git to ignore files that aren’t already being tracked. And you can easily override that with
-f. Putting.gitignoreinside of .gitignore will ignore itself (if it’s not already tracked).If you’re an end user, not a build tool, you’d rather want to place that in
.git/info/excludeinside the repo. It’s effectively another gitignore file, which won’t be committed.But if you do need something like this for a build tool, then yeah, you can create a file
/test/.gitignorewith these contents:real-person-first-last.json .gitignoreThen running
git add .just adds/test/fake-person-first-last.json.Both
/test/.gitignoreand/test/real-person-first-last.jsonwould be ignored right away.