Как мне нажать на GitHub под другим именем пользователя?
мы с другом делимся моим компьютером. Я сделал толчки в 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
13 ответов:
Если вы используете другого пользователя windows, ваш ключ SSH и настройки git будут независимыми.
Если это не вариант для вас, то ваш друг должен добавить свой SSH ключ к своей учетной записи на GitHub.
хотя, предыдущее решение будет держать вас толкать как себя, но это позволит вам толкать в ее РЕПО. Если вы не хотите этого и работаете в разных папках на одном ПК, вы можете настроить имя пользователя и электронную почту локально внутри папки с git, удалив
-g
флаг команды config:git config user.name her_username git config user.email her_email
альтернативно, если вы нажмете на
https
протокол, GitHub будет запрашивать имя пользователя/пароль каждый раз (если вы не используете менеджер паролей).
это работает для меня, он будет запрашивать имя пользователя и пароль
git config --local credential.helper "" git push origin master
Я устанавливаю псевдоним ssh, используя пользовательский
IdentityFile
и переписал происхождение, чтобы использовать мой пользовательскийme-github
хоста.#when prompted enter `id_rsa_user1` as filename ssh-keygen -t rsa # ~/.ssh/config Host user1-github HostName github.com Port 22 User git IdentityFile ~/.ssh/id_rsa_user1 #check original remote origin url git remote -v origin git@github.com:user1/my-repo.git #change it to use your custom `user1-github` hostname git remote rm origin git remote add origin git@user1-github:user1/my-repo.git
если после запуска
git push
Git запрашивает парольuser
, но вы хотели бы нажать какnew_user
, вы можете использоватьgit config remote.origin.url
:$ git push user@my.host.com:either/branch/or/path's password: ^C $ git config remote.origin.url user@my.host.com:either/branch/or/path $ git config remote.origin.url new_user@my.host.com:either/branch/or/path $ git push new_user@my.host.com:either/branch/or/path's password:
Если вы используете SSH URL (
git@github.com:username/projectname.git
) вместо HTTPS URL, вы можете временно указать другой ключ SSH с помощью$GIT_SSH_COMMAND
переменные среды:$ GIT_SSH_COMMAND="ssh -i different_private_key" git push
насколько я могу судить, с URL-адресами SSH GitHub не заботится об именах пользователей, только о ключах: если учетная запись пользователя имеет доступ к репозиторию, и эта учетная запись имеет ключ SSH (см. SSH ключи страница в настройках учетной записи), то если вы используете этот ключ SSH для нажатия на этот репозиторий, толчок будет рассматривается как исходящий от этого пользователя.
вы можете нажать с помощью другой учетной записи. Например, если ваш аккаунт A, который хранится в .gitconfig и вы хотите использовать учетную запись B который является владельцем РЕПО, которое вы хотите нажать.
счета B: B_user_name, B_password
Пример ссылки SSH:https://github.com/B_user_name/project.gitпуш с B
Это просто при клонировании, пожалуйста, возьмите git URL с вашим именем пользователя.При фиксации он будет запрашивать ваш новый пароль пользователя.
например:
git clone https://username@github.com/username/reponame.git
git clone https://username@bitbucket.org/username/reponame.git
перейти к менеджеру учетных данных Перейти к учетным данным Windows Удалите записи в разделе Общие учетные данные Попробуйте подключиться еще раз.
если это ваша проблема
remote: Permission to username1/repo.git denied to username2. fatal: unable to access 'https://github.com/username1/repo.git/': The requested URL returned error: 403
в дополнение к изменению имени пользователя и электронной почты из терминала с помощью git config:
$ git config --global user.name "Bob" $ git config --global user.email "bob@example.com"
вам нужно будет удалить информацию авторизации из Связки ключей. Это решение заняло у меня несколько часов, чтобы выяснить.Я обнаружил, что у меня также был сертификат в моем брелке.
откройте Keychain access, нажмите на все элементы и найдите git. Удалить все связки ключей
Как упоминалось ранее, вы можете использовать
git config user.name her_username git config user.email her_email
чтобы вручную установить имя пользователя и адрес электронной почты для одного РЕПО, Но вы должны добавить эту команду:
git commit --amend --reset-author
Если вы уже пытались продавить до изменения. В противном случае изменения не отображаются в файле конфигурации.
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
вы можете нажать на этого пользователя к этому РЕПО сейчас.
Если у вас есть https://desktop.github.com/
тогда вы можете перейти к настройки (или Параметры) -> учетные записи
а потом выйти и войти в систему.
если под Windows и пользователь Git для Windows и
manager
для управления учетными данными (akaGit-Credential-Manager-for-Windows
ссылке) проблема в том, что нет простого способа переключения между пользователями при нажатии на GitHub overhttps
используя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
:цитата из него:
пространство имен
задает пространство имен для сохраненных учетных данных.
по умолчанию GCM использует пространство имен ' git ' для всех сохраненных учетных данных, установка этого значения конфигурации позволяет управлять пространством имен, используемым глобально или на хосте.
git config --global credential.namespace name
теперь сохраните свои учетные данные в Диспетчере учетных данных Windows как:
- Адрес В Интернете:
git.username:https://github.com
- имя пользователя:
Personal Access Token
- пароль:
OAuth_Token
обратите внимание, что мы изменили:
git
->git.username
(где вы изменяетеusername
к вашему фактическому имени пользователя или ради него, к тому, что вы можете захотеть в качестве уникального идентификатора)теперь, внутри репозитория, где вы хотите использовать конкретную запись, выполните:
git config credential.namespace git.username
(опять-таки ... заменить
username
с желаемым значением)код
.git/config
теперь будет содержат:[credential] namespace = git.username
Et voilá! Правильные учетные данные будут извлечены из хранилища учетных данных Windows.
это, конечно, не меняет, какой пользователь/электронная почта нажимает. Для этого вы должны настроить обычный
user.name
иuser.email