bash脚本从bash脚本添加git凭据

时间:2018-12-24 13:44:48

标签: linux bash shell scripting

我需要能够从我的bash脚本中添加git凭据,但无法弄清楚该怎么做。

git clone https://xxxxxxx

将询问我的用户名和密码。

我如何在bash脚本中传递它们?

任何指针将不胜感激

3 个答案:

答案 0 :(得分:3)

对于基本的HTTP身份验证,您可以:

  1. 在URL中传递凭据:

    git clone http://USERNAME:PASSWORD@some_git_server.com/project.git
    

    警告是不安全的:当您使用远程仓库时,使用pstop实用程序的计算机上的其他用户可以看到带有凭据的URL。

  2. 使用gitcredentials

    $ git config --global credential.helper store
    $ git clone http://some_git_server.com/project.git
    
    Username for 'http://some_git_server.com': <USERNAME>
    Password for 'https://USERNAME@some_git_server.com': <PASSWORD>
    
  3. 使用~/.netrc

    cat >>~/.netrc <<EOF
    machine some_git_server.com
           login <USERNAME>
           password <PASSWORD>
    EOF
    

答案 1 :(得分:2)

1)这可以帮助您add credentials git

2)我目前正在使用gitlab,并且将它放在带有jenkins的容器中,无论如何都要进行克隆,我这样做是:send

希望我能帮助您

答案 2 :(得分:2)

您仍然可以将用户名和密码传递到git clone的URL中:

git clone https://username:password@github.com/username/repository.git

关于使用bash脚本,您可以传递用户名$1和密码$2

git clone https://$1:$2@github.com/username/repository.git

然后使用以下命令调用脚本:

./script.sh username password

另外,将密码保留为仅包含用户名可能更安全:

git clone https://$1@github.com/username/repository.git

因为带有密码的命令将记录在您的bash历史记录中。但是,可以通过在命令前面添加一个空格来避免这种情况。

您也可以使用How do I parse command line arguments in Bash?获得使用命令行参数的更好方法。

还请小心使用URL Encoding作为用户名和密码中的特殊字符。一个很好的例子是使用%20而不是@,因为URLS对于标准字符集以外的字符需要使用标准ASCII编码。