Is it possible to make .gitignore changed according to environment variables

混江龙づ霸主 提交于 2019-12-02 18:03:22

问题


Is it possible to add to .gitignore rules depends on environment variables?

for example

if -e $(ENV_VAR) "AAA"
!liba.so
else
liba.so

Basically what I want is to have a repository such that if ENV_VAR = "AAA" the local repository will have a.txt and if ENV_VAR isn't set the a.txt will be removed.


回答1:


The answer is no.

Gitignore rules are completely static. Further that would not even make any sense. Once a file is in the repo, gitignore does not apply to it anymore – it only prevents new files from being added.

That being said, you can have a local “gitignore”: anything in .git/info/exclude will also be ignored. Within the limits I just explained.




回答2:


The answer is no. Gitignore rules are static. You can turn around it by dynamically creating your .gitignore file. So, you will also have dynamically created static rules.

This can be easily done within the application building system such a Makefile. The .gitignore file can rebuilt each time the project is built.

Example Makefile:

all: my_app .gitignore

.gitignore: some deps
    cp my_static_gitignore_rules .gitignore
    echo 'dynamically_created_rule1' >> .gitignore
    echo 'dynamically_created_rule2' >> .gitignore

my_app: my_app.c
    ...



回答3:


Currently the answer is no Yes, but not using an environment variable.

My use case is simple; I'd like to avoid accidentally checking in changes that I've made to a specific file so I can run my code locally.

Let's say I add my super secret password to the src/assets/secrets.xml file so that I can run my code locally, but I never want my password to leak to github so it can be found with tools like this.

Originally I thought having the ability to export GITIGNORE=path/to/that/file would be helpful in this circumstance.

But since that's not an option, here's how to accomplish the same goal.

git update-index --assume-unchanged src/assets/secrets.xml

To undo this effect:

git update-index --no-assume-unchanged src/assets/secrets.xml

After re-reading the OP's question a couple of times, I'm not sure if this will do what he's asking.



来源:https://stackoverflow.com/questions/17640160/is-it-possible-to-make-gitignore-changed-according-to-environment-variables

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!