Игнорировать предупреждение при нажатии на герою git мастер - PullRequest
5 голосов
/ 21 марта 2020

Я развертываю приложение в Heroku, что означает подталкивание к их git репо . Когда вы делаете git push heroku master (или эквивалентный удаленный псевдоним), я получаю это предупреждение:

ПРЕДУПРЕЖДЕНИЕ: вы собираетесь освоить pu sh, это то, что вы хотели? [y | n]

Это немного раздражает, но не имеет большого значения. Однако сейчас я использую сценарии развертывания, поэтому не хочу взаимодействовать со сценарием - как мне заставить мой bash сценарий автоматически отвечать на y?

Я пытался выполнить yes | git push heroku master, но это не работает.

Ответы [ 3 ]

5 голосов
/ 24 марта 2020

Согласитесь с @ bk2204, я бы проверил, используется ли хук git, о котором вы не знаете.

Git хуки не контролируются версией, поэтому убедитесь, что вы ищете это в машина, на которой вы получили эту ошибку.

Хук git может находиться не в каталоге .git, а в другом месте. Проверьте, установлен ли git config core.hooksPath и, если да, он укажет на каталог, в котором находится ваш git хук.

Файл хука, который вы ищете, скорее всего, будет иметь имя pre-push. Решением в этом случае является удаление или переименование этого файла ловушек, и git не запустит его раньше, чем pu sh.

0 голосов
/ 29 марта 2020

Просто еще один способ решить проблему автоматизации ответов на запросы. Вы можете использовать expect, чтобы позаботиться об интерактивных предупреждениях / подсказках.

После написания сценария развертывания deploy.sh, вы можете написать сценарий ожидания и запустить в нем сценарий deploy для ответа на

ВНИМАНИЕ: Вы собираетесь научиться мастерить, это то, что вы хотели? [y | n]

сообщение, вы можете отправить 'y' из ожидаемого.

В качестве примера можно взять следующий фрагмент

#!/usr/bin/expect -f

spawn bash ./deploy.sh

expect "WARNING: You're about to push to master, is that what you intended? [y|n]\r"

send -- "y\r"
0 голосов
/ 24 марта 2020

Нет, такого файла нет

И все же, это именно то, что сделал бы .git/hooks/pre-push, как этот .

Чтобы исключить это, активируйте (с вашим локальным Git 2.25+) trace2 .
, что позволит вам увидеть, что используется на стороне клиента (ваш P C) к Git:

git config --global trace2.normalTarget ~/log.normal

Попробуйте свой pu sh, наберите 'n' (чтобы прервать) и проверьте ~/log.normal на наличие подсказок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...