在.gitconfig中隐藏GitHub令牌

gws*_*gws 15 linux git bash github

我想将所有的dotfiles存储在GitHub上,包括.gitconfig,它要求我在.gitconfig中隐藏GitHub令牌.

为此,我有一个".gitconfig-hidden-token"文件,这是我打算编辑的文件并放在git下隐藏令牌:

...
[github]
user = giuliop
token = --hidden--
...
Run Code Online (Sandbox Code Playgroud)

如果我修改".gitconfig-hidden-token"文件来创建".gitconfig"文件,我需要启动一个shell脚本:

cp .gitconfig .gitconfig.backup
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig
Run Code Online (Sandbox Code Playgroud)

缺点是每次修改文件时都需要手动启动脚本.有没有更好的,完全自动化的方法来做到这一点?

Dav*_*son 34

我刚刚为自己解决了这个问题.解决问题的"正确"方法是将gitconfig拆分为两个文件,一个是带有别名/ config/etc的公共文件,另一个是保存用户名和密码的私有文件.像这样......


来自https://github.com/ddopson/dotfiles ...

的.gitconfig:
[include]
  # For username / creds / etc
  path = ~/.gitconfig.local

[alias]
  ... 
Run Code Online (Sandbox Code Playgroud) .gitconfig.local:
[user]
  user = ddopson
  name = Dave Dopson
  email = ddopson@gmail.com
  token = a123uber456secret789ceprivate000key78

[credential]
  helper = osxkeychain
Run Code Online (Sandbox Code Playgroud) 的.gitignore:
/.gitconfig.local
Run Code Online (Sandbox Code Playgroud)


fge*_*fge 10

添加.gitconfig git add -N.

然后git add -p,编辑大块,用任何东西替换令牌,并推动它.这种方式不需要额外的文件.

附录:对文件的其他修改,git add -p再次使用,并编辑大块,以便不会覆盖您的初始操作.

  • 如果我随后编辑文件并且`git add`它会忘记`-p`会发生什么?我想这个令牌会被发布 (2认同)
  • 我认为正确的方法是根据@ddopson的答案使用`include` (2认同)