我正在使用git 2.19.0并且我的发布 CI 工作失败。
我想使用 git git-credentials进行身份验证。
这就是我创建$HOME/.config/git/credentials的方式
if [[ "${CI_PROJECT_URL}" =~ (([^/]*/){3}) ]]; then
mkdir -p $HOME/.config/git
echo "${BASH_REMATCH[1]/:\/\//://gitlab-ci-token:${GL_TOKEN:-$GITLAB_TOKEN}@}" > $HOME/.config/git/credentials
git config --global credential.helper store
fi
这就是我所拥有的.git/config
:
[fetch]
recurseSubmodules = false
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@git.example.com/some-org/some-project.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
这就是我所拥有的$HOME/.config/git/credentials
:
$ cat $HOME/.config/git/credentials
https://gitlab-ci-token:Dwq456WQd4q56QW@git.example.com/
但是,当我这样做时git push
,它无法使用该配置,而是从.git/config
项目中读取配置。
这样cp $HOME/.config/git/credentials ~/.git-credentials
做没有帮助。
为什么我这样做时会忽略$HOME/.config/git/credentialsgit push
?