Имя пользователя и пароль для команды git push
Возможно клонировать репозиторий git, указывая имя пользователя и пароль в команде. Пример:
git clone https://username:[email protected]/file.git
Можно ли указать имя пользователя и пароль при нажатии? Так, например, запуск git push origin --all
будет выдаваться с запросом пароля. Я хочу это по одной команде.
(Я знаю о возможности настройки ключей и других решений, но я хочу знать, есть ли способ просто использовать имя пользователя и пароль с помощью одной команды.) Я запускаю git Bash on Windows 8.1.
Ответы
Ответ 1
Да, вы можете сделать
git push https://username:[email protected]/file.git --all
в этом случае https://username:[email protected]/file.git
замените origin
на git push origin --all
Чтобы узнать больше параметров git push
, попробуйте git help push
Ответ 2
Я использовал ниже формат
git push https://username:[email protected]/file.git --all
и если ваш пароль или имя пользователя содержат @, замените его на% 40
Ответ 3
Git не будет хранить пароль при использовании таких URL-адресов. Вместо этого он просто сохранит имя пользователя, поэтому в следующий раз вам нужно будет выслать вам пароль. Как описано в руководстве, чтобы сохранить пароль, вы должны использовать внешний помощник учетных данных. Для Windows вы можете использовать хранилище учетных данных Windows для Git. Этот помощник также включен по умолчанию в GitHub для Windows.
При использовании этого пароля ваш пароль будет автоматически запоминаться, поэтому вам нужно только ввести его один раз. Поэтому, когда вы клонируете, вас попросят ввести свой пароль, а затем все последующие сообщения с пультом не будут снова запрашивать ваш пароль. Вместо этого помощник учетных данных предоставит Git аутентификацию.
Это, конечно, работает только для аутентификации через https; для доступа ssh ([email protected]/repository.git
) вы используете SSH-ключи и те, которые вы можете запомнить, используя ssh-agent
(или PuTTYs, если вы используете plink).
Ответ 4
Согласно Git документации, последним аргументом команды git push
может быть репозиторий, на который вы хотите нажать:
git push [--all | --mirror | --tags] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
[--repo=<repository>] [-f | --force] [--prune] [-v | --verbose] [-u | --set-upstream]
[<repository> [<refspec>…]]
И параметр repository
может быть либо URL-адресом, либо удаленным именем.
Таким образом, вы можете указать имя пользователя и пароль так же, как в своем примере команды clone
.
Ответ 5
Возможно, но до git 2.9.3 (август 2016) a git push
будет печатать полный URL-адрес, используемый при нажатии на клонированное репо.
Это будет включать ваше имя пользователя и пароль!
Но не более: см. commit 68f3c07 (20 июля 2016 г.) и совершить 882d49c (14 июля 2016 г.) Джефф Кинг (peff
).
(слияние Junio C Hamano - gitster
- в commit 71076e1, 08 августа 2016 г.
push
: анонимный URL-адрес в выводе статуса
Commit 47abd85 (выборка: сбрасывайте имена пользователей из url перед их сохранением, 2009-04-17, git 1.6.4). анонимизировать URL-адреса.
Основная цель заключалась в том, чтобы избежать приклеивания паролей в сообщениях слияния, но в качестве побочного эффекта мы также избегаем их печати в stderr.
Нажимаемая сторона не имеет проблемы с фиксацией слияния, но вероятно, следует избегать их печати в stderr. Мы можем повторно использовать ту же функцию анонимизации.
Обратите внимание, что для того, чтобы это произошло, учетные данные должны отображаться либо в командной строке, либо в файле конфигурации git, ни один из которых не является особо безопасным.
Поэтому люди должны переключиться на использование помощников учетных данных, а заставляет эту проблему уйти.
Но это не оправдание, чтобы не улучшить ситуацию для людей, которые по какой-то причине в конечном итоге используют учетные данные, встроенные в URL.
Ответ 6
Это работает для меня: git push https://имя пользователя: [email protected]/file.git --all