web-dev-qa-db-ja.com

git pullコマンドにパスワードを入力するにはどうすればよいですか?

私は基本的に、WindowsとLinuxのスクリプトを作成して、サーバーからすべてのgitリポジトリを使用して新しいユーザーワークスペースをセットアップしました。

ユーザーにサーバーのパスワードを一度入力してローカル変数に格納し、その変数を各git pullコマンドに渡してから、パスワード変数を消去して終了します。

git pullコマンドがパスワードを要求したときに、どうすればパスワードを入力できますか? WindowsバッチファイルとLinuxシェルスクリプトの両方。

Linuxスクリプトからのコードは次のとおりです。

#!/bin/bash

echo "Enter password: "
read pswd
clear #No screen peaking

#This is repeated for each repo
location=folderName
mkdir $location
cd $location
git init
git remote add Origin git@<server>:$location.git
git pull Origin master 
#Above prompts for password & is where I want to automatically input $pswd

私はSOなどで推奨されているさまざまなことを試してみました。たとえば、パイピング、.txtファイルからの読み取りなどです。古いWindowsのコマンドとLinuxのターミナルコマンド以外は必要ありません。また、このスクリプトはセットアップの目的のため、sshエージェントなどを使用してパスワードを永続的に安全に保存する必要はありません。

私はWindows 7とUbuntu 12.10を実行していますが、このスクリプトは新しいユーザーを設定するためのものなので、ほとんどのディストリビューションで機能するはずです。

19
Matt

私は本当にしないそのパスワードのステップを試して管理し、それを(LinuxとWindowsの両方で)委任するgit資格情報ヘルパー
見る:

ユーザーは、セッションごとに1回だけパスワードを入力します。

4
VonC

概要:

git pull "https://<username>:<password>@github.com/<github_account>/<repository_name>.git" <branch_name>

例:

git pull "https://admin:[email protected]/Jet/myProject.git" master

注:これはbashスクリプトで機能します

39
Jet

urlからリモートgitを読み取り、IDとパスワード(PW)をurlに挿入すると機能する場合があります。

たとえば、次のことを試してください。

cd ${REPOSITORY_DIR}
Origin=$(git remote get-url Origin)
Origin_with_pass=${Origin/"//"/"//${USER_ID}:${USER_PW}@"}
git pull ${Origin_with_pass} master
0
TaehoKang