How can I tell Git to use a different gitignore file than “.gitignore”?

安稳与你 提交于 2019-12-04 04:34:16

问题


I can tell Git where the Git repository is with --git-dir. I can tell Git where the working tree is with --work-tree. How do I tell Git where the gitignore file is?

Q. Why would I want to do such a thing?

A. For some working trees I have two different Git repositories. One is in the standard location of .git. This repository I use for normal version control. The other respository is in .git.sync. This repository I use for periodic automatic syncing between computers. I.e., it's my own little Dropbox clone implemented with Git and a little script that runs periodically.

Ideally, I would be able to tell Git to use .gitignore.sync for the .git.sync repository, rather than having Git use the very same .gitignore that it uses for normal version control.

Q. Why don't I just use Dropbox?

A. It doesn't sync symlinks. Bad Dropbox!


回答1:


You can use core.excludesfile to specify the new ignore file. By default this will only affect the current repository; you can use the --global option if you want to change the default value.

git config core.excludesfile ".new_gitignore"

Edit 1

AFAIK, .gitignore cannot be disabled. And it takes precedence over .git/info/excludes and core.excludesfile. The only way I can think of is having some hacks using filters. This answer explains the use of filters well.




回答2:


Each repository has an info/exclude file - there should be one in .git/info/exclude and in .git.sync/info/exclude. Populate those exclude files just as you would .gitignore.




回答3:


".gitignore" seems to be hard-coded as a per-directory exclude file in git in most commands, taking precedence over all other ignore files.

However, I created a small patch for Git to overcome this limitation: https://gist.github.com/rev22/9954517

It adds the following configuration option:

core.ignoreperdir: Specify an alternative to '.gitignore' as a per-directory exclude-file. If this is not set, the default '.gitignore' is used. If this is empty, no per-directory exclude file is used.



来源:https://stackoverflow.com/questions/15537686/how-can-i-tell-git-to-use-a-different-gitignore-file-than-gitignore

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