Bash脚本自动化Git pull

时间:2017-11-16 21:40:43

标签: git bash git-bash

我想自动从Git拉出来。由于某些原因,我无法在我正在使用的服务器中自动化密码。所以它需要由Bash文件完成。现在我的Bash编码不是那么好。然后可以输入SSH密钥的密码。但我真的不知道该怎么做......

#!/bin/bash cd . public_html/auto_deploy/foldername && git fetch --all && git checkout --force "origin/master"

以上不起作用......然后它需要输入密码,我不知道该怎么做......我怎么能这样做?

3 个答案:

答案 0 :(得分:4)

幸运的是,根据核心Git documentation,您可以使用以下命令保存凭据以供以后使用 - 而不是每次提示时都输入凭据。

git config credential.helper store
  

使用此帮助程序会将未加密的密码存储在磁盘上,   仅受文件系统权限的保护。此命令将无限期地将凭证存储在磁盘上以供将来的Git程序使用。

     

您可能不希望直接调用此命令;这意味着   被git的其他部分用作凭证助手

有趣的是检查:Git Credentials

答案 1 :(得分:1)

您还可以使用ssh-keygen生成ssh密钥,并使用ssh://方法来git pull

SSH密钥可让您建立安全连接。

在生成SSH密钥之前,请通过运行cat ~/.ssh/id_rsa.pub检查系统是否已经有一个。如果您看到以ssh-rsassh-dsa开头的长字符串,则可以跳过ssh-keygen步骤。

要生成新的SSH密钥,只需打开您的终端并使用下面的代码。 ssh-keygen命令提示您输入用于存储密钥对和密码的位置和文件名。当提示您输入位置和文件名时,您可以按Enter键使用默认值。最佳做法是将密码用于SSH密钥,但这不是必需的,您可以按Enter跳过创建密码。请注意,您在此处选择的密码无法更改或检索。

ssh-keygen -t rsa -C "$your_email"

使用下面的代码显示您的公钥。

cat ~/.ssh/id_rsa.pub

将密钥复制粘贴到您的用户个人资料。请复制完整的密钥,以ssh-开头,并以您的用户名和主机结尾。

答案 2 :(得分:0)

如果你想从shell脚本中执行Git pull,你需要像这样使用它:

git pull https://username:password@git_hostname.com/my/repository