在工作中,我们有 Github Enterprise,但有时我也会从公共的 Github.com 中提取。我需要将我的工作作者信息用于任何 Github Enterprise 活动,但我不想在更新我已经有活动的 Github.com 存储库时将我的工作凭据与我的个人凭据混淆。
作为比较,我能够成功地根据 URL 设置不同的代理信息,如下所示:
git config --global http.https://github.com.proxy http://<myworkproxy:port>
git config --global https.https://github.com.proxy http://<myworkproxy:port>
https://github.com
只有在远程 URL 中时才会使用代理。
这可以通过输入真实的远程 URL 来验证,如下所示,Git 会吐出要使用的代理:
git config --url-match https.proxy https://github.com/<rest of repo URL>
user.name
因此,我也尝试了上述方法user.email
:
git config --global user.https://github.com.name <My Github.com user name>
git config --global user.https://github.com.email <My Github.com user email>
检查我的全局配置文件(用于git config --global -e
在编辑器中将其拉出),一切似乎都设置正确:
[user] name = <My work user name> email = <My work user email> [user "https://github.com"] name = <My github.com user name> email = <My github.com user email>
即使我使用git config --url-match user.name https://github.com/<rest of repo URL>
它也会显示 github.com 用户名而不是工作用户名,因此过滤工作正常。
但是,当我使用 git 提交时(无论是从 GUI 还是直接在命令行上),它仍然总是使用我的工作user.name
和user.email
.
不能全局匹配用户名和电子邮件吗?还是我在这里做错了什么?
如果需要,我可以直接更新每个 repo 的名称和电子邮件,但我希望有一个更全球化的解决方案。
谢谢!