GIT 根据仓库URL规则来使用全局账号。

需求:我在阿里云云效有不同的账号,A账号有十几个仓库源码,B账号有十几个仓库源码。我想要的效果是A用全局账号,B也用全局账号,不想每个仓库单独设置不同的账号,万一修改一下密码的话得一个个改,很麻烦。

本来正常,只能A用全局或者B用全局,另外的只能一个个仓库开启 useHttpPath=true ,这样子的话每个票据都能单独保存,但是是一个仓库保存一个,万一改密码很麻烦。

还好GIT提供了一个功能,根据仓库URL进行正则匹配,匹配到特定某个规则就加载不同的全局配置文件。

操作步骤:

1、打开阿里云codeup后后台的全局设置,先将“组织个性化”这里组织标识名设置一个固定字符串,比如 jxbjz ,这样子能让你的所有仓库都的URL都包含一个特殊字符串,比如 https://codeup.aliyun.com/jxbjz/abc.git ,只有这样子,才能写规则匹配这个URL

2、修改gitconfig ,win+r 打开 %USERPROFILE% ,找到 .gitconfig 文件,先备份下再来修改,

[includeIf "hasconfig:remote.*.url:https://codeup.aliyun.com/jxbjz/**"]
path = ~/.gitconfig-jxbjz 

[credential "https://codeup.aliyun.com"]下面增加 username=xxxxx(你的克隆账号)

加入这句。意思是匹配到这个规则的URL则加载~/.gitconfig-jxbjz  ,在这个.gitconfig目录下新增这个.gitconfig-jxbjz  ,内容是

[credential "https://codeup.aliyun.com"]
username = bajinzhi ,保存,其中bajinzhi  是你在阿里云云效的克隆账号

cmd执行命令  git config --global --get-regexp "^includeIf\." 看下是否起效,如果没看任何内容输出,可能是git版本太低,升级git。我的是git version 2.56.0.windows.4 可以,但是之前一开始太老了就不行

输入命令 git ls-remote origin ,应该会弹出认证窗口,填写你在阿里云云效的克隆密码账号,就可以了。

如何检测账号是否正确加载。

cmd进入到仓库文件夹的路径后,执行如下命令,预期看到的是这个仓库你希望使用的克隆用户名,则代表git能正确加载配置文件。

git config --get credential.https://codeup.aliyun.com.username

 

 

以下是主配置文件.gitconfig的范例

[user]
name = Jersey
email = 10000@qq.com
[credential]
helper = manager
[credential "https://codeup.aliyun.com"]
useHttpPath = false
provider = generic
username = himytestusername
[includeIf "hasconfig:remote.*.url:https://codeup.aliyun.com/jxbjz/**"]
path = ~/.gitconfig-jxbjz
[filter "lfs"]
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
process = git-lfs filter-process
required = true

以下是 .gitconfig-jxbjz 的范例

[credential "https://codeup.aliyun.com"]
username = mytestusername2

posted @ 2026-11-07 12:17  LoveCoder  阅读(2)  评论(0)    收藏  举报