22

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

ユーザーにサーバーのパスワードを一度入力してローカル変数に保存し、その変数を各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

パイピング、.txtファイルからの読み取りなど、SOやその他の場所で推奨されているさまざまなことを試しました。昔ながらのWindowsのcmdコマンドとLinuxターミナルコマンド以外は必要ありません。また、このスクリプトは設定のみを目的としているため、sshagentなどを使用してパスワードを永続的に安全に保存する必要はありません。

私はWindows7とUbuntu12.10を実行していますが、このスクリプトは新しいユーザーを設定するためのものであるため、ほとんどのディストリビューションで理想的に機能するはずです。

4

3 に答える 3

46

あらすじ:

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

例:

git pull "https://admin:12345@github.com/Jet/myProject.git" master

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

于 2015-09-14T06:35:34.683 に答える
4

そのパスワードステップを試して管理するのではなく、それを(LinuxとWindowsの両方で)gitcredentialhelperに委任することを強くお勧めします。
見る:

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

于 2013-01-31T15:31:49.077 に答える
4

urlからリモートを読み取り、パスワード()をgit挿入すると機能する可能性があります。 IDPWurl

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

cd ${REPOSITORY_DIR}
origin=$(git remote get-url origin)
origin_with_pass=${origin/"//"/"//${USER_ID}:${USER_PW}@"}
git pull ${origin_with_pass} master
于 2019-09-05T08:20:27.160 に答える