Я и мой друг делимся своим компьютером. Я сделал толчок для GitHub, используя оболочку git bash в Windows 7. Теперь мы находимся в другом проекте на этом компьютере, и мне нужно, чтобы она зашла в свою учетную запись. Но он продолжает пытаться использовать мое имя пользователя и говорит, что у меня нет доступа к ее хранилищу:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) до нажатияgit config --local credential.helper ""
может сделать свое дело.Ответы:
Если вы используете другого пользователя Windows, ваш SSH-ключ и настройки git будут независимыми.
Если это не вариант для вас, тогда ваш друг должен добавить ваш SSH-ключ в свою учетную запись Github.
Хотя предыдущее решение будет держать вас как самого себя, но оно позволит вам войти в ее репо. Если вы не хотите этого и работаете в другой папке на одном компьютере, вы можете настроить имя пользователя и адрес электронной почты локально внутри папки с помощью git, удалив
-g
флаг команды config:В качестве альтернативы, если вы перешли
https
протокол, Github будет запрашивать имя пользователя / пароль каждый раз (если вы не используете менеджер паролей).источник
git config --global user.name "Mona Lisa"
Это сработало для меня, он будет запрашивать имя пользователя и пароль
источник
helper = cache --timeout=999999
настроился на это,.gitignore
и это сработало. Но какой-нибудь способ сбросить это без изменения локального конфига мне интересно?credential.helper
, например, хранилище учетных данных Windows. Это также означает, что он запрашивает имя пользователя / пароль каждый раз, когда ему это нужно, поскольку ничего не настроено, поэтому, возможно, вы также можетеcredential.helper
вместо этого настроить кэширование (см. Ответ @Ciro Santilli) или использовать другой ответ здесь.Вы можете нажать с использованием другой учетной записи. Например, если ваша учетная запись A, которая хранится в .gitconfig, и вы хотите использовать учетную запись B, которая является владельцем репо, который вы хотите открыть.
Аккаунт B : B_user_name, B_password
Пример ссылки SSH: https://github.com/B_user_name/project.git
Пуш с учетной записью B :
Чтобы увидеть учетную запись в .gitconfig
$git config --global --list
$git config --global -e
(также изменить аккаунт)источник
user.name
,user.email
в локальной конфигурации, я клонировал с именем пользователя, и не работает; Теперь последний ответ работает, не касаясь связки ключей / что угодно ... вGit 2.9.0 in Windows
. «наконец, но не в последнюю очередь» .. это то, что он называется. Спасибо. Этот ответ заслуживает большего количества голосов.https://'B_user_name'@github.com/B_user_name/project.git
. Это должно запросить парольB_user_name
.Я настроил псевдоним ssh с помощью пользовательского
IdentityFile
и переписал источник, чтобы использовать мое пользовательскоеme-github
имя хоста.источник
git remote set-url origin git@user1-github:user1/my-repo.git
NЕсли вы используете SSH URL (
git@github.com:username/projectname.git
) вместо HTTPS URL, вы можете временно указать другой SSH ключ с помощью$GIT_SSH_COMMAND
переменной среды:Насколько я могу судить, с URL-адресами SSH GitHub не заботится об именах пользователей, а только о ключах: если учетная запись пользователя имеет доступ к хранилищу, а эта учетная запись имеет ключ SSH (см. Страницу ключей SSH в учетной записи. настройки), затем, если вы используете этот ключ SSH для отправки в этот репозиторий, push будет рассматриваться как исходящий от этого пользователя.
источник
user.name
иuser.email
вgit config
изменит учетную запись, коммят связанаЕсли после запуска
git push
Git запрашивает парольuser
, но вы хотите нажать asnew_user
, вы можете использоватьgit config remote.origin.url
:На данный момент используйте
^C
для выходаgit push
и используйте следующий, чтобы нажать какnew_user
.источник
git config remote.origin.url https://different_user@github.com/different_user/repo.git
Во время клонирования все просто, пожалуйста, возьмите URL-адрес git с вашим именем пользователя. При его вводе вы получите новый пароль пользователя.
Например:
git clone https: //username@github.com/username/reponame.git
git clone https: //username@bitbucket.org/username/reponame.git
источник
fatal: repo not found
.если это твоя проблема
В дополнение к изменению имени пользователя и электронной почты с терминала, используя git config:
вам нужно будет удалить информацию авторизации из связки ключей. Это решение заняло у меня несколько часов, чтобы выяснить. Я обнаружил, что у меня также есть сертификат в моей цепочке для ключей.
Откройте доступ к Keychain, нажмите All Items и найдите git. Удалить всю связку ключей
источник
Я использую одну машину для отправки кода на две разные учетные записи GitHub с разными именами пользователей. Предполагая, что вы уже создали одну учетную запись и хотите добавить новую:
ssh-keygen -t rsa -C "myaddress@example.com"
id_rsa
. Дайте ему другое имя, напримерid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
и отредактируйте его, предоставив настройки для ваших учетных записей:Теперь вы сможете получать сообщения из разных учетных записей в зависимости от того, какой ключ вы добавляете в агент ssh, т. Е. Использовать свою первую учетную запись
ssh-add ~/.ssh/id_rsa
.Вы также можете изменить свой электронный адрес пользователя:
git config --global user.email "myaddress@example.com"
или очистите ssh-ключи в случае ошибки разрешения при передаче кода одной из учетных записей:
ssh-add -D
источник
git push
работает? Вы должны быть в состоянии нажать после добавления ключаПерейти к диспетчеру учетных данных. Перейти к учетным данным Windows. Удалите записи в разделе Общие учетные данные. Попробуйте подключиться снова.
источник
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Как упоминалось ранее, вы можете использовать
вручную установить имя пользователя и адрес электронной почты для одного репо, но вы должны добавить эту команду:
если вы уже пытались нажать до изменения. В противном случае изменения не появятся в конфигурационном файле.
источник
--reset-author
(С--
...) поставит последнюю сконфигурированный имя / электронной почты на последней фиксации, а также последнюю метку времени. Это не влияет на изменения в конфигурационном файле.Вы можете добавить новый удаленный URL для другого имени пользователя, используя
git remote add origin-username https://username@github.expedia.biz/repository_name.git
После этого, если вы нажмете кнопку «Использовать»
git push -u origin-username master
, вам будет предложено ввести пароль.источник
git config user.name изменяет только имя, которое я фиксирую. Я все еще не могу толкнуть. Вот как я решил это, и я думаю, что это легкий путь для меня.
Сгенерируйте ключ SSH под именем пользователя, который вы хотите нажать на компьютере, который вы будете использовать https://help.github.com/articles/connecting-to-github-with-ssh/
Добавьте этот ключ в учетную запись пользователя github, которую вы хотите отправить на https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Выберите клонировать с SSH
Вы можете подключиться как этот пользователь к этому репо сейчас.
источник
Если под Windows и пользователем Git для Windows и
manager
для управления учетными данными (он жеGit-Credential-Manager-for-Windows
Link ), проблема заключается в том, что нет простого способа переключаться между пользователями при переходе на GitHub сhttps
использованиемOAuth
токенов.Причина в том, что токен хранится как:
git:https://github.com
Personal Access Token
OAuth_Token
Варианты URL в
Internet Address
не работают, например:git:https://username@github.com
git:https://github.com/username
Решение: пространства имен . Это находится в деталях для конфигурации
Git-Credential-Manager-for-Windows
:Цитирую из этого:
Теперь сохраните свои учетные данные в диспетчере учетных данных Windows как:
git.username:https://github.com
Personal Access Token
OAuth_Token
Обратите внимание, что мы изменили:
git
->git.username
(где вы меняетеusername
свое действительное имя пользователя или ради него на любое другое, которое вы хотите использовать в качестве уникального идентификатора)Теперь внутри репозитория, в котором вы хотите использовать конкретную запись, выполните:
(Опять же ... замените
username
на желаемое значение)Ваша
.git/config
теперь будет содержать:И вуаля! Правильные учетные данные будут извлечены из хранилища учетных данных Windows.
Это, конечно, не меняет, какой пользователь / электронная почта подталкивает. Для этого вам нужно настроить обычный
user.name
иuser.email
источник
git config credential.namespace git.username
как уже упоминалось (вместо имени пользователя). Если вы нажмете в следующий раз, git попросит вас ввести новые учетные данные для имени пользователя.Я не мог понять, как иметь 2-е удостоверение github на одной машине (для меня ни один из этих ответов не сработал), но я выяснил, как я могу использовать несколько разных учетных записей github как я.
Нажмите как то же имя пользователя, но на разные учетные записи GitHub
Установите второй ключ SSH ( например, так ) для своей второй учетной записи на github
Переключаться между аккаунтами так:
Нажмите с моей новой учетной записью 2-го GitHub
Нажмите с моей основной учетной записью
источник
Выполните следующие шаги:
источник
Если у вас есть https://desktop.github.com/,
вы можете перейти в « Настройки» (или «Настройки») -> «Учетные записи»,
а затем выйти и войти.
источник
Идентификатор пользователя, в котором происходит фиксация, хранится в файле конфигурации.
перейдите в начало репозитория vi .git / config
измените строку URL, указанную после «[remote» origin »], чтобы иметь соответствующий ID пользователя
источник
Если вы используете SSH и получите
хотя вы не хотите выдвигать Alice_username, убедитесь, что Alice_username не имеет ключа ssh вашего компьютера, добавленного в его учетную запись github.
Я удалил свой ключ ssh из учетной записи Алисы на github, и пуш сработал.
источник