Как да накарам Git да НЕ пита за идентификационни данни

Използвам git clone в Bash скрипт, който приема произволен тип Git местоположение (HTTPS, Git, SSH, файлова система...) и ще го клонира. Но този скрипт трябва да работи без взаимодействие с който и да е потребител. По-точно, бих искал този скрипт да НЕ ПАУЗИРА за идентификационни данни: ако местоположението изисква идентификационни данни и git не може да ги намери сам, искам Git да се провали.

Моят скрипт прави предположението, че това не е негова грижа, ако не сте настроили правилния начин за достъп до тези местоположения без парола. Въпреки това, решението трябва да позволява начин да разберете каква е грешката (например извеждане на грешка с „Неуспешно удостоверяване“).

Имам нужда от това поведение, просто защото това е скрипт, трябва да се изпълнява неинтерактивно (задача на cron, изграждане на VM ... и т.н. ...). Имам нужда да се провали и да не замразява скрипта ми, чакайки информация, че не мога да го захранвам (и не искам).

Така че, в моята текуща загриженост, изисквам git clone да се провали, вместо да питам за идентификационни данни.

Не намерих никаква опция в git clone за принудително НЕ искане на идентификационни данни и за предпочитане неуспех при грешка при удостоверяване.


person vaab    schedule 09.05.2014    source източник
comment
Използвате ли SSH за достъп до отдалечено репо? Ако е така, може би трябва да експортирате ключа си към сървъра, за да избегнете искането за идентификационни данни.   -  person Gabriel M    schedule 09.05.2014
comment
@GMGray Знам за всички начини да настроите вашата система или git, за да получите достъп до местоположение, без да искате идентификационни данни. Това е проблем на потребителя. Работата на моя скрипт е да клонира хранилища, на които съм дал различни местоположения. Не искам да се забива с искане на идентификационни данни, тъй като не е предназначен да бъде интерактивен скрипт. Благодаря ти за забележката, ще редактирам въпроса си, за да бъда по-ясен по тези въпроси.   -  person vaab    schedule 09.05.2014
comment
Как се свързвате? SSH или HTTP?   -  person Nilpo    schedule 09.05.2014
comment
@Nilpo и двете, трябва да съм съвместим с всяко git клонируемо местоположение, с което git е съвместим. Това е скрипт, който не трябва да добавя ограничения върху местоположението (ако е възможно). Работата му ще бъде да клонира даденото местоположение и да се провали, ако не може да го направи без взаимодействие.   -  person vaab    schedule 10.05.2014


Отговори (1)


АКТУАЛИЗАЦИЯ: във версия git > 2.3:

GIT_TERMINAL_PROMPT=0 

За предишна версия:

Ето моя трик за принудителен провал:

GIT_ASKPASS=/bin/echo git clone ...
person vaab    schedule 09.05.2014
comment
това ми помогна да диагностицирам проблем при използване на git команди в задача за изграждане на vsts, тъй като изходът от подканата не се показва дори при използване на --progress. Благодаря ти! - person GeekyDeaks; 27.05.2017
comment
Човек също може да се нуждае от GIT_SSH_COMMAND="ssh -oBatchMode=yes" за предотвратяване на подкани при взаимодействие през SSH тръба. - person jdknight; 03.08.2017