Как ввести пароль в команду git pull? - программирование
Подтвердить что ты не робот

Как ввести пароль в команду git pull?

Я написал сценарии для Windows и Linux, чтобы создать новую рабочую область для пользователей со всеми репозиториями git с нашего сервера.

Я хотел бы, чтобы пользователь однажды вводил пароль для нашего сервера, сохранял его в локальной переменной, передавал эту переменную каждой команде git pull, затем стирал пароль и выходил.

Как я могу ввести пароль при запросе команды git pull? Как для пакетного файла Windows, так и для оболочки Linux script.

Вот код из Linux script:

#!/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 [email protected]<server>:$location.git
git pull origin master 
#Above prompts for password & is where I want to automatically input $pswd

Я пробовал разные вещи, рекомендованные в SO и в других местах, например, в трубопровод, чтение из TXT файла и т.д. Я бы предпочел не нуждаться ни в чем, кроме простых команд Windows cmd и Linux. И поскольку этот script предназначен только для целей настройки, мне не нужно безопасно хранить пароль навсегда с помощью чего-то вроде агента ssh.

Я запускаю Windows 7 и Ubuntu 12.10, но этот script предназначен для настройки новых пользователей, поэтому он должен идеально работать с большинством дистрибутивов.

4b9b3361

Ответ 1

Я бы рекомендовал не пытаться управлять этим шагом пароля и делегировать его (как в Linux, так и Windows) на git помощник учетных данных.
См:

Пользователь вводит пароль только один раз за сеанс.

Ответ 2

Описание:

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 script

Ответ 3

Считайте удаленный 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