How do I provide a username and password when running “git clone git@remote.git”?

后端 未结 10 2248
有刺的猬
有刺的猬 2020-11-22 07:00

I know how to provide a username and password to an HTTPS request like this:

git clone https://username:password@remote

But I\'d like to kn

10条回答
  •  自闭症患者
    2020-11-22 07:25

    If you're using http/https and you're looking to FULLY AUTOMATE the process without requiring any user input or any user prompt at all (for example: inside a CI/CD pipeline), you may use the following approach leveraging git credential.helper

    GIT_CREDS_PATH="/my/random/path/to/a/git/creds/file"
    # Or you may choose to not specify GIT_CREDS_PATH at all.
    # See https://git-scm.com/docs/git-credential-store#FILES for the defaults used
    
    git config --global credential.helper "store --file ${GIT_CREDS_PATH}"
    echo "https://alice:${ALICE_GITHUB_PASSWORD}@github.com" > ${GIT_CREDS_PATH}
    

    where you may choose to set the ALICE_GITHUB_PASSWORD environment variable from a previous shell command or from your pipeline config etc.

    Remember that "store" based git-credential-helper stores passwords & values in plain-text. So make sure your token/password has very limited permissions.


    Now simply use https://alice@github.com/my_repo.git wherever your automated system needs to fetch the repo - it will use the credentials for alice in github.com as store by git-credential-helper.

提交回复
热议问题