Если ваш компьютер защищен или вы не заботитесь о безопасности пароля, это можно сделать очень просто. Предполагая, что удаленный репозиторий находится на GitHub и origin
является вашим локальным именем для удаленного репозитория, используйте эту команду
git remote set-url --push origin https://<username>:<password>@github.com/<repo>
Флаг --push
обеспечивает изменение URL-адреса хранилища только для команды git push
. (Вопрос, заданный в оригинальном посте, касается только команды git push
. Требование ввода имени пользователя и пароля только для операций push является обычной настройкой для общедоступных репозиториев на GitHub. Обратите внимание, что private репозитории на GitHub также потребуют имя пользователя + пароль для операций извлечения и извлечения, поэтому для частного репозитория вы не захотите использовать --push flag
...)
ПРЕДУПРЕЖДЕНИЕ: Это небезопасно по своей природе, потому что:
Ваш Интернет-провайдер или любой, кто регистрирует доступ к вашей сети, может легко
см. пароль в текстовом виде в URL;
любой, кто получит доступ к вашему ПК, сможет просмотреть ваш пароль, используя git remote show origin
.
Вот почему использование SSH-ключа является приемлемым ответом.
Даже ключ SSH не полностью защищен . Любой, кто получает доступ к вашему ПК, может, например, сделать толчки, которые разрушают ваш репозиторий, или, что еще хуже, подтолкнуть коммиты, внося незначительные изменения в ваш код. (Все отправленные коммиты явно хорошо видны на GitHub. Но если кто-то захочет тайно изменить ваш код, он может --amend
сделать предыдущий коммит без изменения сообщения коммита, а затем принудительно протолкнуть его. Это было бы незаметно и довольно трудно заметить на практике.)
Но раскрытие вашего пароля хуже . Если злоумышленник узнает ваше имя пользователя и пароль, он может сделать такие действия, как блокирование вашей учетной записи, удаление вашей учетной записи, окончательное удаление хранилища и т. Д.
В качестве альтернативы - для простоты и безопасности - вы можете указать только ваше имя пользователя в URL, так что вам придется вводить пароль каждый раз, когда вы git push
, но вы будете не нужно давать свое имя пользователя каждый раз. (Мне очень нравится такой подход, необходимость вводить пароль заставляет меня задуматься каждый раз, когда я git push
, поэтому я не могу git push
случайно.)
git remote set-url --push origin https://<username>@github.com/<repo>