使用用户名和密码执行git pull

时间:2018-10-30 12:37:05

标签: git bitbucket

是否可以使用git pull在命令中输入用户名和密码, 避免输入密码信息。 例如

git pull -u ahmeditman -p 123456  #this example to explain . 

可以使用

git pull http://ahmeditmna:123456@xxxxx.git 

但是它将从Master Branch中拉出,但是如果我需要从dev Branch中拉出呢?

2 个答案:

答案 0 :(得分:2)

  

可以使用

git pull http://ahmeditmna:123456@xxxxx.git

我认为您的意思是git clone http://ahmeditmna:123456@xxxxx.git


从技术上讲,是的。 http://username:password@domain/path是HTTP(S)协议的有效URL一部分。

但是那是安全的还是应该这样做?不。

首先,最好使用HTTPS,如果您要从公共存储库中推送/提取数据,这将不是问题,因为数据已经是公共的,但是如果它是私有存储库,则攻击者可以读取您的数据。

但是更重要的是,任何有权访问您的存储库副本的人都可以读取您的凭据。只需尝试一下(我为该示例选择了第一个与Python相关的存储库。):

cd /tmp/
git clone 'https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git'
cd python-examples-from-intro-to-python-course/
git remote -v

git remote -v列出存储库的远程URL,让我们看看:

origin   https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git (fetch)
origin   https://username:password@bitbucket.org/mshibly/python-examples-from-intro-to-python-course.git (push)

如您所见,您的凭据在这里,正在等待读取。

如果在服务器上使用它,那甚至更糟,因为根据常规配置,您可以在日志中找到凭据。更不用说您可能会通过编写脚本并将凭据放进脚本中来提交和/或存储在其他人的服务器上的事实。

这里的重点是这样做的理由不充分,但是有很多理由不这样做。

否,这样做不行。 我建议您花一些时间来学习SSH的工作原理和配置操作系统。

答案 1 :(得分:1)

如果您将远程来源URL(git config remote.origin.url)覆盖为http://ahmeditmna:123456@xxxxx.git,例如:

git remote set-url origin http://ahmeditmna:123456@xxxxx.git

在不提示输入任何种类的分支密码的情况下,拉动即可工作。