在.gitconfig中隐藏GitHub令牌

时间:2011-12-14 13:31:51

标签: linux git bash github

我想将所有的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

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

4 个答案:

答案 0 :(得分:34)

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


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

的.gitconfig:
[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