Подтвердить что ты не робот

Git толкает с неверного пользователя из терминала

У меня проблема с git и моим терминалом.

Здесь галерея, чтобы показать вам мою проблему: http://imgur.com/a/6RrEY

Когда я нажимаю на мой терминал, git говорит, что я нажимаю их другим именем пользователя, что пользователь из моей организации (моей компании) без фиксации вообще и кажется, что он никому не принадлежит: ( проверьте галерею сначала pic)

Но этого не происходит, когда я использую Github для mac, в фиде я вижу, что сделанные мной коммиты.

Проблема также влияет на мои личные репозитории, мой терминал говорит, что у меня нет разрешения на то, чтобы накладывать фиксации на эти репозитории (что, очевидно, неправильно), поскольку он пытается нажать его с этим пользователем: (проверить галерею второй рис.)

Угадайте, что? Этого не происходит с Github для mac тоже.

Я переделал свой компьютер на новый, несколько дней назад, поэтому я reset 'создал весь мой ssh-ключ github и оставил только новый, созданный Github для Mac, поэтому я не думаю, что там какой-то призрак ключ пользователя /ssh скрыт где-то, этот hdd совершенно новый: (проверьте галерею третьего рисунка)

У моего файла .gitconfig все ясно, есть только мои учетные данные: (проверьте галерею четвертый рис.)

Я действительно не понимаю, help, StackOverflow, вы единственная надежда.

(Мои извинения за мои плохие навыки Gimp и ссылку на Star Wars)

EDIT: ssh-add -l показывает только хороший ssh-ключ, созданный github для mac, и у меня есть только одна учетная запись github

EDIT2: ssh -T [email protected] признаю меня хорошим пользователем.

EDIT3: После нескольких тестов это выглядит так, как мой терминал делает с моим именем пользователя, но подталкивает их другим, Github для mac совершает и толкает с хорошим именем пользователя. Эта ситуация случается с каждым репо я /make (даже новые).

EDIT4: В личном репозитории git log --pretty="%h %an %ae" показано мое хорошее имя пользователя

EDIT5: Никаких признаков переменных среды, которые бы переопределили мои учетные данные в моем env. Даже если я пытаюсь установить эти переменные с хорошей учетной записью, проблема сохраняется.

EDIT6: Все работает нормально, если я принуждаю пользователя к пути /.git/config репозитория, но я не думаю, что хороший вариант: http://[email protected]/USER/REPO.git

EDIT7: Мы удалили пользователя git, который переместил коммиты для меня, и это вызывает еще одну ошибку: remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'

FINAL EDIT: я установил git с помощью homebrew, набрал git config --global push.default simple , и теперь он принимает мои учетные данные даже без принуждения пользователя. Это странно. Спасибо всем за вашу помощь, вы отличные парни!

4b9b3361

Ответ 1

Несмотря на все отличные опции, заданные другими пользователями, единственный способ исправить это - переустановить git полностью и набрать git config --global push.default simple, чтобы переписать хорошие учетные данные.

Ответ 2

У меня просто была эта проблема на работе. Встроенный git, который поставляется с mac или приходит, когда вы устанавливаете xcode кеширует git учетные данные в цепочке ключей. Исправить меня было:

запустите доступ к keychain (запустите прожектор через cmd + пробел, введите keychain, нажмите enter)

Под брелки в левом верхнем углу выберите "login" Под категорией слева выберите "пароли"

найдите имя "github" и удалите его.

Ответ 3

github идентифицирует вас по ключу ssh, который видит, а не по настройкам из git.

Следовательно, вам нужно убедиться, что ssh-ключ вашей рабочей учетной записи отсутствует в вашем брелоке, когда вы пытаетесь удалить из своей личной учетной записи, и наоборот.

Используйте ssh-add -l чтобы определить, какие ключи находятся в вашем ssh-add -l ключей, и ssh-add -d <keyfile> чтобы удалить ключ из вашего набора ключей, если он не работает, удалите "нежелательный" ключ ssh из ~/.ssh/config.

источник

NB. Github по-прежнему будет идентифицировать ваш коммит только на основании электронного письма.

Ответ 4

похоже, мой терминал совершает коммиты с моим именем пользователя, но толкает их другим

Имя автора и коммиттера, а также адрес электронной почты (которые важны для GitHub) получены из:

git config user.name
git config user.email

Однако, как упоминалось в git config и git commit-tree, эти значения могут быть переопределены переменными среды:

GIT_AUTHOR_NAME
GIT_AUTHOR_EMAIL
GIT_COMMITTER_NAME
GIT_COMMITTER_EMAIL

Так что перепроверьте эти переменные.

Все работает нормально, если я заставлю пользователя .git/config в .git/config хранилища, но я не думаю, что это хороший вариант.

Но это должно быть хорошим решением.
При использовании https-адреса я всегда указываю в нем пользователя, чтобы убедиться, что аутентификация выполняется с правильным пользователем.

http://[email protected]/USER/REPO.git

Ответ 5

Сначала выполняется временное решение killall ssh-agent, затем добавьте ключи ssh, сгенерированные для учетной записи, которую вы должны использовать ssh-add ~/.ssh/id_4shameer

Это поможет нам работать с несколькими учетными записями github, когда мы получим ошибку типа ERROR: Permission to user/repo-git.git denied to username.

Ответ 6

Если вы используете MAC, перейдите к Доступ к ключам и удалите запись пользователя, для которого вы не хотите получать git.

Ответ 7

Я использую Windows 10, и я столкнулся с той же проблемой сегодня. В моем случае мои учетные данные для другого пользователя были сохранены диспетчером учетных данных Windows. Таким образом, удаляя/удаляя учетные данные git с помощью следующей команды, git config --global --unset credential.helper

не помогло Мне пришлось вручную удалить запись в Windows, следуя приведенному ниже пути,

Пуск → Панель управления ---> Учетные записи пользователей ---> Управление учетными данными ---> Учетные данные Windows

Затем найдите запись, например, git: https://github.com и удалите ее. После этого все работает нормально.

Ответ 8

Решением для меня было добавить запись в мой файл ~/.ssh/config для github. Я должен был сделать это, потому что:

  1. У меня было несколько учетных записей github с одним и тем же ключом (не делайте этого!)
  2. когда вы выполняете команду git push с помощью ssh, ваш компьютер по умолчанию захватывает id_rsa и использует его в качестве идентификатора ssh.
  3. github не может (что неудивительно) отразить конфликт, который вы имеете в виду, поскольку он основывает учетную запись на ключе, который он представляет, что, если он привязан к нескольким учетным записям, приводит к такой боли. Убийца, в течение долгого времени, мне это сходит с рук, и все просто работает.

Запись, которую я добавил:

Host github.com
    Hostname github.com
    Port 22
    User waterproofpatch
    IdentityFile ~/.ssh/id_rsa_waterproofpatch

Я создал новый ключ, уникальный для моей учетной записи, как id_rsa_waterproofpatch. Эта запись в моей конфигурации ssh указывает, что для подключений к github.com я хочу предоставить этот ключ.

Другое решение, вероятно, было бы для меня, чтобы войти в другую учетную запись, удалить дубликат ключа SSH.

Ответ 9

очистка цепочки для ключей не помогла... Мне пришлось ssh-add -D и заново добавить ключ с помощью ssh-add <keyfile>

Ответ 10

Я решил эту проблему, удалив (или переименовав в *.bak) файл id_rsa и id_rsa.pub в MacOS High Sierra. Идея отсюда.

У меня есть пользовательские перенаправления хоста в ~/.ssh/config, которые должны быть применены, но я использовал неправильного пользователя, прежде чем я переименовал два файла...

Ответ 11

Вот что у меня сработало:

  1. Изменение учетных данных внутри .git-credentials
  2. Изменение глобальных user.name и user.email внутри .gitconfig

Ответ 12

Перейдите в диспетчер учетных данных Windows на панели управления, и там вы сможете найти данные учетных данных вашей учетной записи Github, а также там вы можете отредактировать имя пользователя и пароль. После выполнения этих действий снова нажмите на код, и ваш код будет добавлен в вашу текущую учетную запись Github.

Ответ 13

Что сработало для меня, удалив репо и добавив его снова:

git remote rm origin
git remote add origin [email protected]:fguillen/MyApp.git

Ответ 14

У меня такая же проблема в windows10 даже после удаления моего git, так как @user542833 говорит, что это потому, что кеш Windows и вы должны удалить учетные данные Github в вашем Credential Manager а когда вы снова пытаетесь нажать, Windows запрашивает ваши учетные данные и устанавливает его снова

Ответ 15

Что мне помогло, так это использование https-адреса Github-репо вместо URL-адреса ssh. Я перешел на страницу проекта Github и скопировал URL-адрес https в буфер обмена, а затем вставил его во вторую команду ниже:

git remote rm origin
git remote add origin https://[...]

Ответ 16

У меня была похожая проблема, и оказалось, что проблема заключалась в том, что файл открытого ключа содержал мой адрес электронной почты в последней строке. Это, казалось, переопределило настройку пользователя в моей конфигурации. Как только я удалил свою электронную почту из файла .pub (и повторно загрузил ее в репозиторий), Git подключился с использованием правильного пользователя.