Вытягивание из http, чтобы избежать аутентификации (поэтому мне не нужно вводить пароль, если я не использую ssh.keygen).
Проталкивание по ssh с аутентификацией.
Вытягивание из http, чтобы избежать аутентификации (поэтому мне не нужно вводить пароль, если я не использую ssh.keygen).
Проталкивание по ssh с аутентификацией.
На git-config
справочной странице:
remote.<name>.url
URL удаленного репозитория. См. git-fetch(1) или git-push(1).
remote.<name>.pushurl
URL-адрес для отправки удаленного репозитория. См. git-push(1).
Попробуйте установить для первого URL-адрес http:
, а для второго — URL-адрес git+ssh:
(или просто git:
)?
Исходный ответ для проталкивания через ssh в одном «удаленном»: это относится только к одному репозиторию, текущему:
Если у вас есть git remote -v
, который возвращает URL-адрес https для «origin
», вы можете ввести:
git config remote.origin.pushurl [email protected]:aUser/aRepo
Или скорее:
git remote set-url --push [email protected]:aUSer/aRepo
Как отмечено здесь:
Функционально это не отличается, так как
set-url
внутри просто вызывает config. Ноset-url
будет жаловаться, если вы неправильно наберете часть команды «git remote set-url --push
», тогда как git config молча примет ошибочно введенные параметры, но не сможет фактически установить URL-адрес удаленного устройства.
См. git-reference (здесь адаптировано ):
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin https://github.com/schacon/git-reference.git (push)
$ git remote set-url --push origin [email protected]:schacon/git-reference.git
$ git remote -v
origin https://github.com/schacon/git-reference.git (fetch)
origin [email protected]:schacon/git-reference.git (push)
В контексте вознаграждения jww добавляет:
Я хочу, чтобы это применялось ко всему github.com, а не только к моим репозиториям.
Тогда git remote
это не ответ.
Только url.<base>.pushInsteadOf
будет применяться ко всем репозитории:
Любой URL-адрес, начинающийся с этого значения, не будет передан; вместо этого он будет переписан так, чтобы он начинался с , и полученный URL-адрес будет отправлен. я
So:
git config --global url."[email protected]:".pushInsteadOf https://github.com/
# or
git config --global url."ssh://[email protected]/".pushInsteadOf https://github.com/
Я упоминал этот вариант в 2014 году в статье «Git: как получить общедоступный URL-адрес git:// только для чтения».
Параметр --global
заставит применить его ко всем репозиториям, а не только к текущему.
[pull https://github.com]
, он по-прежнему использует SSH для извлечения. Другие манипуляции, похоже, просто ломают Git. Некоторое время назад я получил url/InsteadOf
из другого вопроса и ответа по переполнению стека, но не смог продвинуть его до HTTPS pull и SSH push.
- person jww; 05.08.2018
git remote set-url --push [email protected]:aUSer/aRepo
в локальном клоне.
- person VonC; 05.08.2018
git remote set-url --push origin [email protected]:yourUser/yourRepo.git
, и все готово.
- person VonC; 05.08.2018
yourUser/yourRepo
из команды? Я хочу, чтобы это применялось ко всему github.com, а не только к моим репозиториям.
- person jww; 05.08.2018