我想在我的.gitconfig中包含一个包含github设置的文件 - 这可能吗?
我可以这样做:
[core]
include = /path/to/file
Run Code Online (Sandbox Code Playgroud)
Mik*_*rty 285
Git(1.7.10+)现在支持以下语法.gitconfig:
[include]
path = /path/to/file
Run Code Online (Sandbox Code Playgroud)
有关git更改及其边缘情况的详细说明,请参见此处.
顺便说一句,值得指出的一些细微之处:
例如$HOME,不支持环境变量扩展.(扩展~出现在Git 1.7.10.2中.)
如果指定了相对路径,则它相对于具有该[include]语句的.gitconfig文件.这甚至可以在链式包含中正常工作 - 例如~/.gitconfig可以:
[include]
path = subdir/gitconfig
Run Code Online (Sandbox Code Playgroud)
并且subdir/gitconfig可以:
[include]
path = nested_subdir/gitconfig
Run Code Online (Sandbox Code Playgroud)
...将导致subdir/nested_subdir/gitconfig加载.
如果git找不到目标文件,它会默默地忽略该错误.这似乎是设计上的.
Von*_*onC 15
2012年更新:
您可以通过将特殊
include.path变量设置为要包含的文件的名称来包含另一个配置文件.
包含的文件立即展开,就好像它的内容已在include指令的位置找到.
如果include.path变量的值是相对路径,则该路径被认为是相对于找到include伪指令的配置文件.
值的值include.path受波形扩展的影响:~/扩展为值的值$HOME,并扩展到~user/指定用户的主目录.
我不这么认为.
我宁愿把那个设置放在~/.gitconfig文件中
用户特定的配置文件.也称为"全局"配置文件.
这样,它就完成了.gitconfig项目特定的文件,而不是在推送到GitHub时发布.有关全局配置文件的更多信息,请参阅此SO答案.
Git有3个配置文件.
bjeanes在评论中补充道:
看起来每个人都错过了这个问题.
大卫显然想推了他所有的点文件的回购(bashrc,gemrc包括他等),.gitconfig所以他可以有他对他的所有计算机的所有设置.通过包含和忽略私人条目
来推送.gitconfig文件的一部分的方法是他(和我,就此而言)所追求的.
一种可能的方法是使用涂抹/清理过滤器驱动程序使用私有敏感信息解密/加密一个文件(请参阅此线程),以便使用与之相关的解密部分完成〜/ .gitconfig之类的本地文件.文件.
这样你就可以拥有一个包含所有点文件的Git仓库,以及一个带有加密信息的文件,用于解密并添加到所述点文件中.

在.gitattributes(或.git/info/a..)使用:
myPrivateInfosFile filter=gpg diff=gpg
Run Code Online (Sandbox Code Playgroud)
在您的repo .config文件中:
[filter "gpg"]
smudge = gpg -d -q --batch --no-tty
clean = gpg -ea -q --batch --no-tty -r C920A124
[diff "gpg"]
textconv = decrypt
Run Code Online (Sandbox Code Playgroud)
(基于GPG的解决方案意味着,当然,您已通过另一种方式将您的私钥/公钥传送到目标计算机上,您希望通过克隆此特殊仓库来恢复所有点文件)
实际上,在您的情况下,需要完成涂抹脚本,因为它必须在解密该文件后继续并将相关部分添加到您的全局~/.gitconfig文件中(除非您用其他位置覆盖全局配置文件)或其他点文件物.
https://kerneltrap.org/mailarchive/git/2008/3/13/1153274/thread (此线程中进一步讨论了gpg的不便之处)(这与完全加密的Git仓库不同,如此处所述)
您可以从命令行加载它:
$ git config --local include.path "/path/to/.gitconfig"
Run Code Online (Sandbox Code Playgroud)
"$PWD"/.gitconfig如果要从当前目录加载文件,请改用.
运行上述命令后,以下行将添加到您的.git/config文件中:
[include]
path = /path/to/.gitconfig
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29854 次 |
| 最近记录: |