Недавно я переключился на синхронизацию своих репозиториев с https: // на GitHub (из-за проблем с брандмауэром), и он каждый раз запрашивает пароль.
Есть ли способ кэшировать учетные данные вместо аутентификации каждый раз, когда git push
?
Недавно я переключился на синхронизацию своих репозиториев с https: // на GitHub (из-за проблем с брандмауэром), и он каждый раз запрашивает пароль.
Есть ли способ кэшировать учетные данные вместо аутентификации каждый раз, когда git push
?
Начиная с Git 1.7.9 (выпущенного в конце января 2012 г.), в Git есть удобный механизм, позволяющий избежать постоянного ввода пароля для HTTP / HTTPS, который называется помощники по учетным данным. (Спасибо dazonic за указание на эту новую функцию в комментариях ниже.)
В Git 1.7.9 или новее вы можете просто использовать один из следующих помощников по учетным данным:
git config --global credential.helper cache
... который указывает Git хранить ваш пароль в кеше в памяти (по умолчанию) 15 минут. Вы можете установить более длительный тайм-аут с помощью:
git config --global credential.helper "cache --timeout=3600"
(Этот пример был предложен на странице справки GitHub для Linux a>.) При желании вы также можете постоянно хранить свои учетные данные, см. другие ответы ниже.
Справка GitHub также предлагает, что если вы используете Mac OS X и использовали Homebrew для установки Git, вы можете использовать собственное хранилище ключей Mac OS X с :
git config --global credential.helper osxkeychain
Для Windows есть помощник под названием Git Credential Manager для Windows или wincred в msysgit.
git config --global credential.helper wincred # obsolete
С помощью Git для Windows 2.7.3 + (Март 2016 г.):
git config --global credential.helper manager
Для Linux используйте (в 2011 г.) gnome-keyring
(или другая реализация связки ключей, например KWallet).
В настоящее время (2020 г.) это будет (в Linux)
sudo dnf install git-credential-libsecret
git config --global credential.helper /usr/libexec/git-core/git-credential-libsecret
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
В версиях Git до 1.7.9 этот более безопасный вариант недоступен, и вам нужно будет изменить URL-адрес, который использует ваш origin
удаленный компьютер, чтобы включить пароль следующим образом:
https://you:[email protected]/you/example.git
... другими словами, с :password
после имени пользователя и перед @
.
Вы можете установить новый URL для своего origin
пульта с помощью:
git config remote.origin.url https://you:[email protected]/you/example.git
Убедитесь, что вы используете https
, и вы должны знать, что если вы это сделаете, ваш пароль GitHub будет сохранен в виде открытого текста в вашем каталоге .git
, что, очевидно, нежелательно.
Альтернативный подход - поместить ваше имя пользователя и пароль в ваш ~/.netrc
файл, хотя, как и в случае сохранения пароля в удаленном URL-адресе, это означает, что ваш пароль будет храниться на диске в виде обычного текста и, следовательно, менее безопасен и не рекомендуется. Однако, если вы хотите использовать этот подход, добавьте следующую строку в свой ~/.netrc
:
machine <hostname> login <username> password <password>
... заменив <hostname>
именем хоста сервера, а <username>
и <password>
своим именем пользователя и паролем. Также не забудьте установить ограничительные разрешения файловой системы для этого файла:
chmod 600 ~/.netrc
Обратите внимание, что в Windows этот файл должен называться _netrc
, и вам может потребоваться определить переменную среды% HOME% - для получения дополнительной информации см.
git config --global credential.helper osxkeychain
в OS X. Информацию о других ОС см. На странице help.github.com/articles/set-up -git
- person dazonic; 22.06.2012
https
URL репозиториев? или он работает также при использовании ssh
URL репозиториев + ключи?
- person chovy; 30.10.2013
https://username:[email protected]/username/project.git
. Это делает пароли в виде простого текста, хранящиеся на диске, практически достаточно безопасными для использования.
- person Russell Stuart; 10.04.2014
ssh-add
). Windows может использовать Pageant, если у вас есть PuTTY. Если вы используете Linux в автономной среде, вам потребуется немного больше настроек, но вы можете легко найти руководство в Google.
- person Dan Albert; 26.04.2014
you:password@
URL)? Когда он хранится в моем каталоге .git, и я отправляю обновления, а затем кто-то другой извлекает его с удаленного компьютера, есть ли у них текстовый файл с моим паролем (you:password@
URL)?
- person laggingreflex; 10.07.2014
.git/config
не поднимается. Но хранить пароли в виде простого текста локально по-прежнему плохая практика.
- person dazonic; 11.07.2014
git config --global credential.helper cache
не работает в Windows: stackoverflow.com/questions/11693074/ используйте gitcredentialstore в Windows и будьте счастливы
- person Sebastian J.; 02.01.2015
git config --global credential.helper cache
у меня тоже не работал на Ubuntu.
- person Sergiy Ostrovsky; 03.03.2017
printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get
(подробнее здесь). Вы всегда должны использовать персональный доступ token с этим и, конечно же, используйте двухфакторную аутентификацию в своей учетной записи GitHub.
- person cjs; 21.02.2018
git version 2.14.3 (Apple Git-98)
- person ; 08.03.2018
Password:
, и никакой другой процесс не видит, что вы вводите. Любой, кто использует пароли в командной строке оболочки, заслуживает того, что получает. (Также отображается в ps
во время выполнения команды.) Но те из нас, кто не волнуется при простом виде командной строки, узнали об этом еще в 1990-х годах.
- person FeRD; 10.07.2018
-1
, оно должно быть в максимальном значении.
- person bsound; 13.10.2019
git
должен использовать целое число без знака для хранения тайм-аута. Для понимания см. Этот пример, в котором объясняется трюк.
- person bsound; 14.10.2019
~138
лет. Что может быть немного нереально.
- person bsound; 19.10.2019
Вы также можете настроить Git на постоянное хранение ваших учетных данных, используя следующее:
git config credential.helper store
Примечание. Хотя это удобно, Git сохранит ваши учетные данные в виде открытого текста в локальном файле (.git-credentials) в каталоге вашего проекта (см. «Домашний» каталог ниже). Если вам это не нравится, удалите этот файл и переключитесь на использование опции кеширования.
Если вы хотите, чтобы Git продолжал запрашивать учетные данные каждый раз, когда ему нужно подключиться к удаленному репозиторию, вы можете запустить эту команду:
git config --unset credential.helper
Чтобы хранить пароли в .git-credentials
в вашем %HOME%
каталоге, а не в каталоге проекта: используйте флаг --global
git config --global credential.helper store
git config --global credential.helper store
- person Brian Gordon; 15.05.2013
--global
был лишним. Даже без этого флага файл учетных данных был создан в %USER_HOME%
каталоге.
- person jFrenetic; 18.08.2015
git config --global credential.helper "cache --timeout=9999999999"
. Это сработало для меня и составляет 317 лет.
- person socom1880; 02.04.2016
Сохранение пароля для URL-адреса HTTPS репозитория Git возможно с ~/.netrc
(Unix) или %HOME%/_netrc
(обратите внимание на _
) в Windows.
Но: этот файл будет хранить ваш пароль в виде обычного текста.
Решение: зашифруйте этот файл с помощью GPG (GNU Privacy Guard) и сделайте расшифровку Git ему каждый раз требуется пароль (для работы _4 _ / _ 5 _ / _ 6 _ / _ 7_).
Примечание. В Git 2.18 (второй квартал 2018 г.) теперь вы можете настроить GPG, используемый для расшифровки зашифрованного .netrc
файла.
См. commit 786ef50, commit f07eeed (12 мая 2018 г.), автор Луис Марсано (` `).
(Объединено Junio C Hamano - gitster
- в commit 017b7c5, 30 мая 2018 г.)
git-credential-netrc
: принять вариантgpg
git-credential-netrc
был жестко запрограммирован на расшифровку с помощью 'gpg
' независимо от параметра gpg.program.
Это проблема в таких дистрибутивах, как Debian, которые называют современный GnuPG чем-то другим, например 'gpg2
'
В Windows:
(В дистрибутиве Git есть gpg.exe
, но при использовании полной установки GPG есть gpg-agent.exe
, который запомнит вашу парольную фразу, связанную с вашим ключом GPG.)
Установите gpg4Win Lite
, минимальный интерфейс командной строки gnupg (возьмите самый последний gpg4win-vanilla-2.X.Y-betaZZ.exe
) и укажите в PATH каталог установки GPG:
set PATH=%PATH%:C:\path\to\gpg
copy C:\path\to\gpg\gpg2.exe C:\path\to\gpg\gpg.exe
(Обратите внимание на команду 'copy
': Git потребуется сценарий Bash для выполнения команды 'gpg
'. Поскольку gpg4win-vanilla-2
поставляется с gpg2.exe
, вам необходимо продублировать его.)
Создайте или импортируйте ключ GPG и доверяйте ему:
gpgp --import aKey
# or
gpg --gen-key
(Убедитесь, что к этому ключу добавлена кодовая фраза.)
Установите вспомогательный сценарий учетных данных в каталог в вашем %PATH%
:
cd c:\a\fodler\in\your\path
curl -o c:\prgs\bin\git-credential-netrc https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl
(Осторожно: скрипт переименован в Git 2.25.x / 2.26, см. Ниже)
(Да, это сценарий Bash, но он будет работать в Windows, поскольку будет вызываться Git.)
Сделайте файл _netrc открытым текстом
machine a_server.corp.com
login a_login
password a_password
protocol https
machine a_server2.corp.com
login a_login2
password a_password2
protocol https
(Не забывайте часть «protocol
»: «http
» или «https
» в зависимости от URL-адреса, который вы будете использовать.)
Зашифруйте этот файл:
gpg -e -r a_recipient _netrc
(Теперь вы можете удалить файл _netrc
, оставив только _netrc.gpg
зашифрованный.)
Используйте этот зашифрованный файл:
git config --local credential.helper "netrc -f C:/path/to/_netrc.gpg -v"
(Обратите внимание на '/
': C:\path\to...
вообще не сработает.) (Сначала вы можете использовать -v -d
, чтобы увидеть, что происходит.)
С этого момента любая команда Git, использующая URL-адрес HTTP (S), требующий аутентификации, будет расшифровывать этот _netrc.gpg
файл и использовать логин / пароль, связанные с сервером, с которым вы связываетесь. В первый раз GPG запросит у вас парольную фразу вашего ключа GPG, чтобы расшифровать файл. В других случаях gpg-agent, запускаемый автоматически первым вызовом GPG, предоставит вам эту парольную фразу.
Таким образом, вы можете запомнить несколько URL / логинов / паролей в одном файле и сохранить его на вашем диске в зашифрованном виде.
Я считаю его более удобным, чем «помощник по кешированию», когда вам нужно запоминать и вводить (один раз за сеанс) разные пароли для каждой из ваших удаленных служб, чтобы этот пароль был кэширован в памяти.
В Git 2.26 (первый квартал 2020 г.) образец помощника по учетным данным для использования .netrc
был обновлен, чтобы работать прямо из коробки. См. patch / обсуждение.
См. commit 6579d93, commit 1c78c78 (20 декабря 2019 г.) Дентон Лю ( Denton-L
).
(Объединено Junio C Hamano - gitster
- в commit 1fd27f8, 25 декабря 2019 г.)
contrib/credential/netrc
: сделатьPERL_PATH
настраиваемымПодписано: Дентон Лю
Путь shebang для интерпретатора Perl в
git-credential-netrc
был жестко запрограммирован.
Однако у некоторых пользователей он может быть расположен в другом месте, и поэтому им пришлось бы вручную редактировать скрипт.Добавьте префикс
.perl
к сценарию, чтобы обозначить его как шаблон и игнорировать сгенерированную версию.
ДополнитеMakefile
, чтобы он генерировалgit-credential-netrc
изgit-credential-netrc.perl
, как и другие сценарии Perl.Рецепты Makefile были бессовестно украдены у
contrib/mw-to-git/Makefile
.
А также:
В версии 2.26 (первый квартал 2020 г.) пример помощника по учетным данным для использования .netrc был обновлен для работы прямо из коробки.
См. commit 6579d93, commit 1c78c78 (20 декабря 2019 г.) Дентон Лю ( Denton-L
).
(Объединено Junio C Hamano - gitster
- в commit 1fd27f8, 25 декабря 2019 г.)
contrib/credential/netrc
: работа вне репоПодписано: Дентон Лю
В настоящее время
git-credential-netrc
не работает вне репозитория git. Это не удается со следующей ошибкой:fatal: Not a git repository: . at /usr/share/perl5/Git.pm line 214.
Однако нет реальной причины, по которой нужно находиться в репозитории. Помощники по учетным данным должны нормально работать и за пределами репозитория.
Вызов несамостоятельной версии
config()
, чтобыgit-credential-netrc
больше не нужно было запускать в репозитории.
Джефф Кинг (peff
) добавляет:
Я предполагаю, что вы используете
netrc
с шифрованием gpg (в противном случае вам, вероятно, следует просто использоватьcredential-store
).
Для доступа с паролем «только для чтения» я нахожу комбинацию _ 60_ с такой конфигурацией немного лучше:[credential "https://github.com"] username = peff helper = "!f() { test $1 = get && echo password=`pass github/oauth`; }; f"
curl -o c:\prgs\bin\git-credential-netrc https://raw.github.com/git/git/master/contrib/credential/netrc/git-credential-netrc
: вам нужно скопировать git-credential-netrc
в любом месте вашего пути ($PATH
), чтобы git мог вызывать 'credential-netrc
'.
- person VonC; 22.12.2013
_netrc
не работал у меня на Windows 7
ПК, но .netrc
работал на youtube-dl с переданным ему аргументом --netrc
.
- person Iulian Onofrei; 13.04.2015
https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl
(через семь лет)
- person Gwyneth Llewelyn; 26.03.2020
Используйте хранилище учетных данных.
Для Git 2.11+ в OS X и Linux использовать встроенное хранилище учетных данных Git:
git config --global credential.helper libsecret
Для msysgit 1.7.9+ в Windows:
git config --global credential.helper wincred
Для Git 1.7.9+ в OS X используйте:
git config --global credential.helper osxkeychain
git: 'credential-gnome-keyring' is not a git command. See 'git --help'.
- person codepleb; 12.02.2017
2.11
, а затем, используя git config --global credential.helper libsecret
, похоже, что gnome-keyring устарел stackoverflow.com/questions/13385690/
- person roo2; 13.02.2017
printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get
(подробнее здесь). Вы всегда должны использовать персональный доступ token с этим и, конечно же, используйте двухфакторную аутентификацию в своей учетной записи GitHub.
- person cjs; 21.02.2018
Есть простой старомодный способ сохранить учетные данные пользователя в URL-адресе HTTPS:
https://user:[email protected]/...
Вы можете изменить URL-адрес с помощью git remote set-url <remote-repo> <URL>
Очевидным недостатком такого подхода является то, что вам нужно хранить пароль в виде обычного текста. Вы все равно можете просто ввести имя пользователя (https://[email protected]/...
), что, по крайней мере, сэкономит вам половину хлопот.
Возможно, вы предпочтете переключиться на SSH или использовать клиентское программное обеспечение GitHub.
Вы можете просто использовать
git config credential.helper store
Когда вы в следующий раз введете пароль с помощью pull или push, он будет сохранен в файле .git-credentials в виде обычного текста (немного небезопасно, но просто поместите его в защищенную папку).
Вот и все, как сказано на этой странице:
git config credential.helper manager
- person VonC; 21.09.2016
Для меня не сразу было очевидно, что мне нужно сначала загрузить помощник! Я нашел загрузку credential.helper по адресу Постоянная аутентификация Atlassian в репозиториях Git.
Цитата:
Выполните следующие действия, если вы хотите использовать Git с кэшированием учетных данных в OS X:
Загрузите двоичный файл git-credential-osxkeychain.
Выполните команду ниже, чтобы убедиться, что двоичный файл является исполняемым:
chmod a+x git-credential-osxkeychain
Поместите его в каталог /usr/local/bin
.
Выполните команду ниже:
git config --global credential.helper osxkeychain
Просто включите учетные данные для входа в качестве части URL-адреса:
git remote rm origin
git remote add origin https://username:[email protected]/path/to/repo.git
Примечание: я не рекомендую этот метод, но если вы торопитесь и ничего не работает, вы можете использовать этот метод.
В установке GNU / Linux также неплохо работает ~ / .netrc:
$ cat ~/.netrc
machine github.com login lot105 password howsyafather
Это может зависеть от того, какие сетевые библиотеки Git использует для транспорта HTTPS.
chmod 0600 ~/.netrc
.
- person poolie; 31.05.2013
Для Windows вы можете использовать подключаемый модуль Git Credential Manager (GCM). В настоящее время поддерживается Microsoft. Приятно то, что он сохраняет пароль в хранилище учетных данных Windows, а не в виде обычного текста.
Установщик находится на странице выпусков проект. Также будет установлена официальная версия Git для Windows со встроенным диспетчером учетных данных. Он позволяет двухфакторную аутентификацию для GitHub (и других серверов). И имеет графический интерфейс для первоначального входа в систему.
Для пользователей Cygwin (или пользователей, уже использующих официальный Git для Windows) вы можете предпочесть ручную установку. Загрузите zip-пакет со страницы на странице выпусков. Распакуйте пакет, а затем запустите файл install.cmd
. Это будет установлено в вашу ~/bin
папку. (Убедитесь, что ваш каталог ~/bin
находится в вашем PATH.) Затем вы настраиваете его с помощью этой команды:
git config --global credential.helper manager
Затем Git запустит git-credential-manager.exe
при аутентификации на любом сервере.
printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get
(подробнее здесь). Вы всегда должны использовать персональный доступ token с этим и, конечно же, используйте двухфакторную аутентификацию в своей учетной записи GitHub.
- person cjs; 21.02.2018
Если вы не хотите хранить свой пароль в виде открытого текста, как сказал Марк, вы можете использовать другой URL-адрес GitHub для выборки, чем для отправки. В вашем файле конфигурации под [remote "origin"]
:
url = git://github.com/you/projectName.git
pushurl = [email protected]:you/projectName.git
Он по-прежнему будет запрашивать пароль при нажатии, но не при получении, по крайней мере, для проектов с открытым исходным кодом.
Вы можете создать свой собственный личный токен API (OAuth) и используйте его так же, как и обычные учетные данные (по адресу: /settings/tokens
) . Например:
git remote add fork https://[email protected]/foo/bar
git push fork
.netrc
Другой способ - настроить пользователя / пароль в ~/.netrc
(_netrc
в Windows), например.
machine github.com
login USERNAME
password PASSWORD
Для HTTPS добавьте дополнительную строку:
protocol https
Чтобы кэшировать свой пароль GitHub в Git при использовании HTTPS , вы можете использовать помощник по учетным данным, чтобы сообщить Git, что нужно помнить ваше имя пользователя и пароль GitHub каждый раз, когда он обращается к GitHub.
git config --global credential.helper osxkeychain
(требуется osxkeychain helper
),git config --global credential.helper wincred
git config --global credential.helper cache
Связанный:
Вы можете использовать помощников по учетным данным.
git config --global credential.helper 'cache --timeout=x'
где x
- количество секунд.
store
, cache
и другие общие вещи?
- person Notinlist; 20.11.2014
После клонирования репозитория repo
вы можете отредактировать repo/.git/config
и добавить конфигурацию, как показано ниже:
[user]
name = you_name
password = you_password
[credential]
helper = store
Тогда вас больше не будут просить username
и password
.
helper = manager
(но меня просят имя пользователя + репо для первого нажатия).
- person Stéphane Laurent; 22.01.2017
Я знаю, что это небезопасное решение, но иногда вам нужно просто простое решение - без установки чего-либо еще. И поскольку helper = store у меня не работал, я создал фиктивный помощник:
Создайте сценарий и поместите его в папку bin вашего пользователя, здесь с именем credfake, этот сценарий предоставит ваше имя пользователя и пароль:
#!/bin/bash
while read line
do
echo "$line"
done < "/dev/stdin"
echo username=mahuser
echo password=MahSecret12345
сделать его исполняемым:
chmod u+x /home/mahuser/bin/credfake
затем настройте его в git:
git config --global credential.helper /home/mahuser/bin/credfake
(или используйте его без --global только для одного репо)
и - voilá - git будет использовать этот пользователь + пароль.
Вместо пароля учетной записи следует использовать токен аутентификации. Перейдите в настройки / приложения GitHub и затем создайте личный токен доступа. Токен можно использовать так же, как и пароль.
Маркер предназначен для того, чтобы пользователи не могли использовать пароль учетной записи для работы над проектом. Используйте пароль только при выполнении административных работ, таких как создание новых токенов или отзыв старых токенов.
Вместо токена или пароля, которые предоставляют пользователю полный доступ к учетной записи GitHub, можно использовать специальный ключ развертывания проекта для предоставления доступа к одному репозиторию проекта. Проект Git можно настроить для использования этого другого ключа в следующих шагах, когда вы все еще можете получить доступ к другим учетным записям Git или проектам с вашими обычными учетными данными:
Host
, IdentityFile
для ключа развертывания, возможно, UserKnownHostsFile
и, возможно, User
(хотя я думаю, что он вам не нужен).ssh -F /path/to/your/config $*
GIT_SSH=/path/to/your/wrapper
перед вашей обычной командой Git. Здесь git remote
(происхождение) должно использовать формат [email protected]:user/project.git
.Лучше использовать учетные данные для безопасности, но вы можете сохранить их в течение некоторого времени с помощью кеша:
git config --global credential.helper cache
git config credential.helper 'cache --timeout=3600'
Ваши учетные данные будут сохранены в течение 3600 секунд.
windowsservercore
)?
- person Peter Mortensen; 30.09.2018
Обычно у вас есть удаленный URL, примерно так,
git remote -v
origin https://gitlab.com/username/Repo.git (fetch)
origin https://gitlab.com/username/Repo.git (push)
Если вы хотите пропустить имя пользователя и пароль при использовании git push
, попробуйте следующее:
git remote set-url origin https://username:[email protected]/username/Repo.git
Я только что добавил тот же URL (с данными пользователя, включая пароль) в origin.
ПРИМЕЧАНИЕ. Это не сработает, если имя пользователя является идентификатором электронной почты.
git remote -v
origin https://username:[email protected]/username/Repo.git (fetch)
origin https://username:[email protected]/username/Repo.git (push)
Все будет немного иначе, если вы, как и я, используете двухфакторную аутентификацию. Поскольку я не нашел хорошего ответа в другом месте, я прикреплю его сюда, чтобы, возможно, я смог найти его позже.
Если вы используете двухфакторную аутентификацию, то указание имени пользователя и пароля даже не сработает - вам будет отказано в доступе. Но вы можете использовать токен доступа к приложению и использовать помощник по учетным данным Git для его кеширования. Вот соответствующие ссылки:
И я не помню, где я это видел, но когда вас спрашивают ваше имя пользователя, вы вставляете туда токен доступа к приложению. Затем оставьте пароль пустым. Это сработало на моем Mac.
У меня это работает, я использую Windows 10
git config --global credential.helper wincred
Я получил ответ от gitcredentials (7 ) Страница руководства. В моем случае у меня нет кэша учетных данных в моей установке Windows; Я использую credential-store.
После того, как я использую хранилище учетных данных, имя пользователя и пароль сохраняются в файле [папка пользователя] / .git-credentials. Чтобы удалить имя пользователя / пароль, просто удалите содержимое файла.
git config --global credential.helper wincred
этот пароль для постоянного хранения.
- person Chetabahana; 03.04.2016
Вы также редактируете файл bashrc и добавляете в него скрипт.
Это запросит ваш пароль один раз при запуске Git, а затем запомнит его до тех пор, пока вы не выйдете из системы.
SSH_ENV=$HOME/.ssh/environment
# Start the ssh-agent
function start_agent {
echo "Initializing new SSH agent..."
# Spawn ssh-agent
/usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
echo succeeded
chmod 600 "${SSH_ENV}"
. "${SSH_ENV}" > /dev/null
/usr/bin/ssh-add
}
if [ -f "${SSH_ENV}" ]; then
. "${SSH_ENV}" > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi
В документации композитора упоминается, что вы можете запретить ему использовать GitHub API, так что он действует как git clone
:
Если вы установите для ключа
no-api
значениеtrue
в репозитории GitHub, он будет клонировать репозиторий, как и в любом другом репозитории Git, вместо использования GitHub API. Но в отличие от прямого использования драйвераgit
, композитор по-прежнему будет пытаться использовать zip-файлы GitHub.
Таким образом, раздел будет выглядеть так:
"repositories": [
{
"type": "vcs",
"no-api": true,
"url": "https://github.com/your/repo"
}
],
Имейте в виду, что API существует не просто так. Так что это должно быть крайним средством в связи с возросшей нагрузкой на github.com.
Если вы используете osxkeychain
и срок действия токена истек, и вы хотите его обновить, выполните следующие действия:
Запустите терминал, затем дважды нажмите Enter.
git credential-osxkeychain erase
host=github.com
protocol=https
Теперь вам будет предложено ввести имя пользователя / пароль. Однако иногда кажется, что этого не происходит, и вам нужно продолжать входить повторно.
В этом случае перезагрузите компьютер. Теперь, когда вы в следующий раз запустите команду git и введете свое имя пользователя / пароль, она будет сохранена.
_netrc
файла, содержащего ваши учетные данные. См. мой ответ ниже. Я обнаружил, что это безопаснее, чемgit-credential-winstore.exe
(кеш памяти), который немного глючит в Windows. - person VonC   schedule 21.08.2013git-credential-winstore
лучше всего работал с Windows. Что глючит? Настройка ssh - предпочтительный вариант, хотя я делал это несколько раз, это гораздо более подвержено ошибкам, и иногда просто не работает, когда вам нужно подключиться к нескольким хостам. - person Bron Davies   schedule 24.09.2015