如何为新 Git 存储库配置默认配置?
How to configure default configuration for new Git repository?
在下面我们看到 Git 默认设置 ignorecase
为真,尽管我的 .gitconfig
配置。
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /cygdrive/c/Users/nowox/home/git/foo/.git/
$ cat .git/config | grep ignore
ignorecase = true
如何告诉 Git 将新存储库的 ignorecase
默认设置为 false?
我已将此配置文件放入 $GIT_TEMPLATE_DIR
(/usr/share/git-core/templates):
[core]
ignorecase = false
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
但是还是不行。我的 config
文件似乎被 Git...
删除了
完整示例
~/test $ git init
Initialized empty Git repository in /cygdrive/c/test/.git/
~/test $ cat .git/config
[core]
ignorecase = true
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
~/test $ cat /usr/share/git-core/templates/config
[core]
ignorecase = false
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
看来不行。两个配置文件不同:
~/test $ diff /usr/share/git-core/templates/config .git/config
2,5c2,5
< ignorecase = false
< repositoryformatversion = 0
< filemode = true
< bare = false
---
> ignorecase = true
> repositoryformatversion = 0
> filemode = true
> bare = false
声明GIT_TEMPLATE_DIR
变量也是一样的:
~/test $ rm -rf .git
~/test $ GIT_TEMPLATE_DIR=/usr/share/git-core/templates git init .
Initialized empty Git repository in /cygdrive/test/.git/
~/test $ cat .git/config
[core]
ignorecase = true
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
参见 TEMPLATE DIRECTORY of git-init。
默认情况下,当我们初始化一个新的git repo 时,/usr/share/git-core/templates
下的内容将被复制到这个新repo 的.git
。所以我们可以在这里为config
制作一个模板,其中包括
[core]
ignoreCase = false
对于 git-bash-for-windows
,它是 /mingw64/share/git-core/templates/
或 /mingw32/share/git-core/templates/
。
除了手册上说的,我们还有以下选项来指定模板。
- 用
--template
选项给出的参数;
$GIT_TEMPLATE_DIR
环境变量的内容;
init.templateDir
配置变量。
在下面我们看到 Git 默认设置 ignorecase
为真,尽管我的 .gitconfig
配置。
$ mkdir foo && cd foo && git init
Initialized empty Git repository in /cygdrive/c/Users/nowox/home/git/foo/.git/
$ cat .git/config | grep ignore
ignorecase = true
如何告诉 Git 将新存储库的 ignorecase
默认设置为 false?
我已将此配置文件放入 $GIT_TEMPLATE_DIR
(/usr/share/git-core/templates):
[core]
ignorecase = false
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
但是还是不行。我的 config
文件似乎被 Git...
完整示例
~/test $ git init
Initialized empty Git repository in /cygdrive/c/test/.git/
~/test $ cat .git/config
[core]
ignorecase = true
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
~/test $ cat /usr/share/git-core/templates/config
[core]
ignorecase = false
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
看来不行。两个配置文件不同:
~/test $ diff /usr/share/git-core/templates/config .git/config
2,5c2,5
< ignorecase = false
< repositoryformatversion = 0
< filemode = true
< bare = false
---
> ignorecase = true
> repositoryformatversion = 0
> filemode = true
> bare = false
声明GIT_TEMPLATE_DIR
变量也是一样的:
~/test $ rm -rf .git
~/test $ GIT_TEMPLATE_DIR=/usr/share/git-core/templates git init .
Initialized empty Git repository in /cygdrive/test/.git/
~/test $ cat .git/config
[core]
ignorecase = true
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
参见 TEMPLATE DIRECTORY of git-init。
默认情况下,当我们初始化一个新的git repo 时,/usr/share/git-core/templates
下的内容将被复制到这个新repo 的.git
。所以我们可以在这里为config
制作一个模板,其中包括
[core]
ignoreCase = false
对于 git-bash-for-windows
,它是 /mingw64/share/git-core/templates/
或 /mingw32/share/git-core/templates/
。
除了手册上说的,我们还有以下选项来指定模板。
- 用
--template
选项给出的参数; $GIT_TEMPLATE_DIR
环境变量的内容;init.templateDir
配置变量。