2013-01-31 14 views
16

Windows ve Linux için, sunucumuzdaki tüm git depoları ile yeni bir kullanıcı alanı oluşturmak için komut dosyaları yazdım.Git çekme komutuna şifre nasıl girilir?

Kullanıcının sunucu için parolayı bir kez girmesini, yerel bir değişkende saklamasını, bu değişkeni her bir git pull komutuna iletmesini ve parola değişkenini silmesini ve çıkmasını istiyorum.

git pull komutu istendiğinde parolayı nasıl girebilirim? Hem Windows toplu iş dosyası hem de Linux kabuk betiği için. Hiçbir şeye ihtiyacım yok tercih vb ben .txt dosyasından okuma gibi boru olarak SO ve başka yerlerde önerilen çeşitli şeyler, denedim

#!/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 

: Burada

Linux komut kodudur düz eski pencereler cmd ve Linux terminali komutlarından daha fazla. Ve bu betik sadece kurulum amaçları için, şifreyi ssh ajanı gibi bir şeyle kalıcı olarak saklamak zorunda değilim.

Windows 7 ve Ubuntu 12.10 çalıştırıyorum, ancak bu betik yeni kullanıcılar kurmak için tasarlandı, bu yüzden çoğu dağıtım üzerinde ideal olarak çalışmalıdır.

cevap

3

Gerçekten değil denemede tavsiye ve o şifre adımını yönetmek ve bu (hem Linux ve Windows üzerinde) için git kimlik yardımcı havale ederdi.
Bkz: kullanıcı oturumu başına sadece bir kez şifreyi girecek

.

+3

Bu hatta kullanıcıların soruya cevap vermez . Sadece başka bir şey kullanmanızı öneririm. Elbette, şifrelerinizi düz metin içinde açık tutmak kötü geliyor, ancak her şeyden kurtulmuş kişi size KAYNAK KONTROLÜ İLE SIFIRLANIYOR. (Onun bir devops görevi olmadığı sürece) çünkü onu unutursun. –

+1

@CyberMen Bu DevOps kullanıcısı değil. Parolaları bir parola tutucusu uygulamasında tutarız. – JamesQMurphy

33

Özet:

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

Örnek:

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

Not: Bu bir bash senaryo üzerinde benim için çalışıyor

+0

Bu gerçekten kabul edilen cevap olmalı, @Matt – gregoltsov

İlgili konular