Я хочу использовать push и pull автоматически в GitExtension, не вводя каждый раз мой пароль и пароль.
Так как я могу сохранить свои учетные данные в GIT?
Я хочу использовать push и pull автоматически в GitExtension, не вводя каждый раз мой пароль и пароль.
Так как я могу сохранить свои учетные данные в GIT?
Запуск
git config --global credential.helper store
тогда
git pull
предоставьте имя пользователя и пароль, и эти подробности будут запомнены позже. Учетные данные хранятся в файле на диске с правами доступа "только для чтения/записи", но в незашифрованном виде.
Если вы хотите изменить пароль позже
git pull
Не удастся из-за неправильного пароля, git затем удалит нарушающего пользователя + пароль из файла ~/.git-credentials
, поэтому теперь перезапустите
git pull
предоставить новый пароль, чтобы он работал как раньше.
Вы можете использовать git config
для включения хранилища учетных данных в git.
git config --global credential.helper store
При запуске этой команды при первом извлечении или удалении из удаленного репозитория вас спросят об имени пользователя и пароле.
После этого для последовательной связи с удаленным хранилищем вам не нужно указывать имя пользователя и пароль.
Формат хранения - файл .git-credentials
, хранящийся в виде открытого текста.
Также вы можете использовать другие помощники для git config credential.helper
, а именно кеш памяти:
git config credential.helper cache <timeout>
который принимает необязательный timeout parameter
, определяющий, как долго учетные данные будут храниться в памяти. С помощью помощника учетные данные никогда не коснутся диска и будут удалены после указанного времени ожидания. Значение по default
составляет 900 seconds (15 minutes).
ВНИМАНИЕ: Если вы используете этот метод, пароли вашей учетной записи git будут сохранены в plaintext
формате, в global.gitconfig file
, например, в linux это будет /home/[username]/.gitconfig
Если это нежелательно для вас, используйте вместо этого ssh key
для своих учетных записей.
Вы можете установить свое имя пользователя и пароль следующим образом:
git config --global user.name "your username"
git config --global user.password "your password"
В Терминале введите следующее:
# Set git to use the credential memory cache
git config --global credential.helper cache
По умолчанию Git кеширует ваш пароль в течение 15 минут.
Чтобы изменить время ожидания кэша паролей по умолчанию, введите следующее:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
Вы можете отредактировать файл ~/.gitconfig
чтобы сохранить ваши учетные данные
sudo nano ~/.gitconfig
Который уже должен иметь
[user]
email = [email protected]
user = gitUSER
Вы должны добавить внизу этого файла.
[credential]
helper = store
Причина, по которой я рекомендую эту опцию, заключается в том, что она носит глобальный характер, и если в какой-то момент вам нужно удалить опцию, вы знаете, куда идти и изменить ее.
ИСПОЛЬЗУЙТЕ ЭТОТ ВАРИАНТ ТОЛЬКО В ВАШЕМ ЛИЧНОМ КОМПЬЮТЕРЕ.
Тогда, когда вы тянете | клонировать | введите ваш пароль git, в общем случае пароль будет сохранен в ~/.git-credentials
в формате
https://GITUSER:[email protected]
ГДЕ DOMAIN.XXX МОЖЕТ БЫТЬ GITHUB.COM | BITBUCKET.ORG | ДРУГОЙ
См документы
Просто поместите свои учетные данные в URL-адрес следующим образом:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Вы можете хранить это так:
git remote add myrepo https://Userna...
... пример его использования:
git push myrepo master
Теперь, когда в список URL - адрес псевдонимами:
git remote -v
... и что команда удалить один из них:
git remote rm myrepo
Вы можете использовать git-credential-store для хранения незашифрованных паролей на диске, защищенных только разрешениями файловой системы.
пример
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]
Вы можете проверить учетные данные, хранящиеся в файле ~/.git-credentials
Для получения дополнительной информации посетите git-credential-store - Помощник для хранения учетных данных на диске
Для глобальной настройки откройте терминал (из любого места) запустите следующее:
git config --global user.name "your username"
git config --global user.password "your password"
Таким образом, любая локальная версия git-репо, имеющаяся на вашем компьютере, будет использовать эту информацию.
Вы можете индивидуально настроить каждый репо, выполнив:
запустите следующее:
git config user.name "your username"
git config user.password "your password"
Это влияет только на эту папку (потому что ваша конфигурация является локальной).
Вы будете более защищены, если будете использовать аутентификацию SSH, чем аутентификация по имени пользователя/паролю.
Если вы используете Mac, аутентификация клиента SSH интегрирована в связку ключей MacOS. Создав ключ SSH, введите в свой терминал:
ssh-add -K ~/.ssh/id_rsa
Это добавит закрытый ключ SSH в связку ключей MacOS. Клиент git будет использовать ssh при подключении к удаленному серверу. Пока вы зарегистрируете свой открытый ключ ssh на сервере, все будет в порядке.
В этом случае вам понадобится помощник по учетным данным git, который скажет git запомнить ваш пароль и имя пользователя GitHub с помощью следующей командной строки:
git config --global credential.helper wincred
и если вы используете репо с использованием ключа SSH, тогда вам нужен ключ SSH для аутентификации.
Изучив десятки SO сообщений, блогов и т.д., Я опробовал каждый метод, и это то, что я придумал. Это охватывает ВСЕ.
Это все способы и инструменты, с помощью которых вы можете безопасно аутентифицировать git для клонирования хранилища без интерактивной подсказки пароля.
Хотите Just Works ™? Это волшебная серебряная пуля.
Получите свой токен доступа (см. раздел в чит-листе, если для этого вам нужны инструкции Github или Gitea) и задайте его в переменной среды (как для локального разработчика, так и для развертывания):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Для Github скопируйте и запустите эти строки дословно:
git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"
Поздравляю, теперь любому автоматизированному инструменту клонирования git-репозиториев не будет препятствовать приглашение пароля, будь то использование https или любой другой стиль ssh url.
Не используете Github?
Для других платформ (Gitea, Github, Bitbucket) просто измените URL. Не меняйте имена пользователей (хотя они и произвольные, они необходимы для разных записей конфигурации).
СовместимостьЭто работает локально в MacOS, Linux, Windows (в Bash), Docker, CircleCI, Heroku, Akkeris и т.д.
Больше информации
См. раздел ".gitconfig Вместо" "на листе.
безопасностиСмотрите раздел "Безопасность" в чит-листе.
Ни один из ответов выше не работал для меня. Я получал следующее каждый раз, когда хотел fetch
или pull
:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Для Mac
Я смог помешать ему спросить мою фразу-пароль:
vi ~/.ssh/config
UseKeychain yes
:wq!
Для Windows
Я смог заставить его работать, используя информацию в этом стеке обмена:https://unix.stackexchange.com/a/12201/348665
Помимо редактирования файла ~/.gitconfig
, вы можете сделать это, если спросите:
git config --local --edit
или же
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
или же
git config --global user.name 'your username'
git config --global user.password 'your password'
Ваше имя пользователя и пароль могут использовать некоторые символы, которые взломают ваш пароль, если вы используете двойные кавычки.
--local
или --global
означает, что параметры конфигурации сохраняются для проекта или для пользователя --global
.
просто используйте
git config --global credential.helper store
и сделайте git pull, он запросит имя пользователя и пароль, с этого момента он не будет запрашивать имя пользователя и пароль, в нем будут храниться детали
.git-credentials
- это место, где хранятся ваши имя пользователя и пароль, когда вы запускаете git config --global credential.helper store
, что предлагают другие ответы, а затем введите свое имя пользователя и пароль:
https://${username}:${password_or_access_token}@github.com
Итак, чтобы сохранить имя пользователя и пароль:
git config —-global credential.helper store
echo 'https://${username}:${password_or_access_token}@github.com' > ~/.git-credentials
Это очень полезно для робота github, например решить цепочечные автоматические сборки в одном и том же хранилище докеров, имея правила для разных веток, а затем запустить его, нажав на него в перехватчике post_push
в концентраторе докеров.
Пример этого можно увидеть здесь в стеке потока.
Я должен был сделать это, чтобы мои настройки работали после переключения учетных записей github на macos:
git config credential.username new_github_username
Я мог бы также добавить --global:
git config --global credential.username new_github_username
Из комментария rifrol о Linux Ubuntu, из этого ответа:
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
Некоторые другие дистрибутивы предоставляют бинарный файл, поэтому вам не нужно его создавать.
В OS X он обычно поставляется "встроенным" с модулем по умолчанию "osxkeychain", так что вы получаете его бесплатно.