git配置(1): 根据remote自动选择账号执行commit
在公司电脑上, 克隆了 github 的仓库, 也克隆了内网 gitlab 的仓库。
希望 commit 和 push 到内网 gitlab 时, 使用公司账号; commit 和 push 到 github 时, 使用个人账号。
原本以为 ~/.gitconfig 只能配置单个账户:
[user]
name = my_personal_name
email = [email protected]
发现 git 2.45 版本可以根据正则匹配到 remote 或 branch, 来载入特定的配置文件; 特定配置文件中使用公司账号即可:
https://git-scm.com/docs/git-config#_includes
bash
[includeIf "hasconfig:remote.*.url:https://*.my_company.com/**"]
path = .gitconfig-my_company
.gitconfig-my_company 内容:
[user]
name = my_account_at_company
email = my_account_at_company@my_company.com
ubuntu-22.04 默认 git 版本不识别上述语法, 需要加 ppa 源更新 git:
bash
sudo add-apt-repository -y ppa:git-core/ppa
sudo apt-get update
sudo apt-get install git -y
参考: