Как сохранить имя пользователя и пароль в GIT?

Я хочу использовать push и pull автоматически в GitExtension, не вводя каждый раз мой пароль и пароль.

Так как я могу сохранить свои учетные данные в GIT?

Ответ 1

Запуск

git config --global credential.helper store

тогда

git pull

предоставьте имя пользователя и пароль, и эти подробности будут запомнены позже. Учетные данные хранятся в файле на диске с правами доступа "только для чтения/записи", но в незашифрованном виде.

Если вы хотите изменить пароль позже

git pull

Не удастся из-за неправильного пароля, git затем удалит нарушающего пользователя + пароль из файла ~/.git-credentials, поэтому теперь перезапустите

git pull

предоставить новый пароль, чтобы он работал как раньше.

Ответ 2

Вы можете использовать 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 для своих учетных записей.

Ответ 3

Вы можете установить свое имя пользователя и пароль следующим образом:

git config --global user.name "your username"

git config --global user.password "your password"

Ответ 4

Включите помощник по учетным данным, чтобы Git сохранял ваш пароль в памяти в течение некоторого времени:

В Терминале введите следующее:

# 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'

Из справки GitHub

Ответ 5

Вы можете отредактировать файл ~/.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 | ДРУГОЙ

См документы

Перезапустите свой терминал.

Ответ 6

Просто поместите свои учетные данные в 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

Ответ 7

Вы можете использовать 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 - Помощник для хранения учетных данных на диске

Ответ 8

Для глобальной настройки откройте терминал (из любого места) запустите следующее:

  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"
    

Это влияет только на эту папку (потому что ваша конфигурация является локальной).

Ответ 9

Вы будете более защищены, если будете использовать аутентификацию SSH, чем аутентификация по имени пользователя/паролю.

Если вы используете Mac, аутентификация клиента SSH интегрирована в связку ключей MacOS. Создав ключ SSH, введите в свой терминал:

ssh-add -K ~/.ssh/id_rsa

Это добавит закрытый ключ SSH в связку ключей MacOS. Клиент git будет использовать ssh при подключении к удаленному серверу. Пока вы зарегистрируете свой открытый ключ ssh на сервере, все будет в порядке.

Ответ 10

В этом случае вам понадобится помощник по учетным данным git, который скажет git запомнить ваш пароль и имя пользователя GitHub с помощью следующей командной строки:

git config --global credential.helper wincred 

и если вы используете репо с использованием ключа SSH, тогда вам нужен ключ SSH для аутентификации.

Ответ 11

Изучив десятки SO сообщений, блогов и т.д., Я опробовал каждый метод, и это то, что я придумал. Это охватывает ВСЕ.

The Vanilla DevOps Git Credentials & Читы о частных пакетах

Это все способы и инструменты, с помощью которых вы можете безопасно аутентифицировать git для клонирования хранилища без интерактивной подсказки пароля.

  • Открытые ключи SSH
    • SSH_ASKPASS
  • Токены доступа к API
    • GIT_ASKPASS
    • .gitconfig вместо
    • .gitconfig [учетные данные]
    • .git-учетные
    • .netrc
  • Частные пакеты (бесплатно)
    • node/npm package.json
    • python/pip/eggs needs.txt
    • рубиновые самоцветы Gemfile
    • Голанг go.mod

Серебряная пуля

Хотите 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 Вместо" "на листе.

безопасностиСмотрите раздел "Безопасность" в чит-листе.

Ответ 12

Ни один из ответов выше не работал для меня. Я получал следующее каждый раз, когда хотел fetch или pull:

Enter passphrase for key '/Users/myusername/.ssh/id_rsa':


Для Mac

Я смог помешать ему спросить мою фразу-пароль:

  1. Откройте конфигурацию, запустив: vi ~/.ssh/config
  2. Добавлено следующее: UseKeychain yes
  3. Сохранено и завершено: нажмите Esc, затем введите :wq!

Для Windows

Я смог заставить его работать, используя информацию в этом стеке обмена:https://unix.stackexchange.com/a/12201/348665

Ответ 13

Помимо редактирования файла ~/.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.

Ответ 14

просто используйте

git config --global credential.helper store

и сделайте git pull, он запросит имя пользователя и пароль, с этого момента он не будет запрашивать имя пользователя и пароль, в нем будут храниться детали

Ответ 15

Сохраните имя пользователя и пароль в .git-credentials

.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 в концентраторе докеров.

Пример этого можно увидеть здесь в стеке потока.

Ответ 16

Я должен был сделать это, чтобы мои настройки работали после переключения учетных записей github на macos:

git config credential.username new_github_username

Я мог бы также добавить --global:

git config --global credential.username new_github_username

Ответ 17

Из комментария 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", так что вы получаете его бесплатно.