我想将所有的dotfiles存储在GitHub上,包括.gitconfig,它要求我在.gitconfig中隐藏GitHub令牌。
为此,我有一个“.gitconfig-hidden-token”文件,这是我打算编辑的文件并放在git下隐藏令牌:
...
[github]
user = giuliop
token = --hidden--
...
如果我修改“.gitconfig-hidden-token”文件以创建“.gitconfig”文件,我需要启动一个shell脚本:
cp .gitconfig .gitconfig.backup
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig
缺点是每次修改文件时都需要手动启动脚本。有没有更好的,完全自动化的方法来做到这一点?
答案 0 :(得分:34)
我刚刚为自己解决了这个问题。解决问题的“正确”方法是将gitconfig拆分为两个文件,一个是带有别名/ config / etc的公共文件,另一个是保存用户名和密码的私有文件。像这样......
来自https://github.com/ddopson/dotfiles ...
[include]
# For username / creds / etc
path = ~/.gitconfig.local
[alias]
...
.gitconfig.local:
[user]
user = ddopson
name = Dave Dopson
email = ddopson@gmail.com
token = a123uber456secret789ceprivate000key78
[credential]
helper = osxkeychain
的.gitignore:
/.gitconfig.local
答案 1 :(得分:10)
使用git add -N
添加.gitconfig。
然后git add -p
它,编辑大块,用任何东西替换标记,并推动它。这样就不需要额外的文件了。
附录:对文件的其他修改,再次使用git add -p
,并编辑大块,以便不会覆盖您的初始操作。
答案 2 :(得分:3)
您现在可以在gitconfig中包含另一个文件。你可以将你的github部分放在那个额外的文件中。请参阅此问题:Is it possible to include a file in your .gitconfig
答案 3 :(得分:1)
我制作了一个脚本来更新我的dotfiles repo,它还会编辑敏感信息,例如我的github令牌。我不认为gitub令牌已经被GitHub使用了,但如果我错了,请纠正我。
您可以查看我的脚本here。