Ответ 1
Несмотря на все отличные опции, заданные другими пользователями, единственный способ исправить это - переустановить git полностью и набрать git config --global push.default simple
, чтобы переписать хорошие учетные данные.
У меня проблема с 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
, и теперь он принимает мои учетные данные даже без принуждения пользователя. Это странно. Спасибо всем за вашу помощь, вы отличные парни!
Несмотря на все отличные опции, заданные другими пользователями, единственный способ исправить это - переустановить git полностью и набрать git config --global push.default simple
, чтобы переписать хорошие учетные данные.
У меня просто была эта проблема на работе. Встроенный git, который поставляется с mac или приходит, когда вы устанавливаете xcode кеширует git учетные данные в цепочке ключей. Исправить меня было:
запустите доступ к keychain (запустите прожектор через cmd + пробел, введите keychain, нажмите enter)
Под брелки в левом верхнем углу выберите "login" Под категорией слева выберите "пароли"
найдите имя "github" и удалите его.
github идентифицирует вас по ключу ssh, который видит, а не по настройкам из git.
Следовательно, вам нужно убедиться, что ssh-ключ вашей рабочей учетной записи отсутствует в вашем брелоке, когда вы пытаетесь удалить из своей личной учетной записи, и наоборот.
Используйте ssh-add -l
чтобы определить, какие ключи находятся в вашем ssh-add -l
ключей, и ssh-add -d <keyfile>
чтобы удалить ключ из вашего набора ключей, если он не работает, удалите "нежелательный" ключ ssh из ~/.ssh/config
.
NB. Github по-прежнему будет идентифицировать ваш коммит только на основании электронного письма.
похоже, мой терминал совершает коммиты с моим именем пользователя, но толкает их другим
Имя автора и коммиттера, а также адрес электронной почты (которые важны для 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
Сначала выполняется временное решение killall ssh-agent
, затем добавьте ключи ssh, сгенерированные для учетной записи, которую вы должны использовать ssh-add ~/.ssh/id_4shameer
Это поможет нам работать с несколькими учетными записями github, когда мы получим ошибку типа ERROR: Permission to user/repo-git.git denied to username.
Если вы используете MAC, перейдите к Доступ к ключам и удалите запись пользователя, для которого вы не хотите получать git.
Я использую Windows 10, и я столкнулся с той же проблемой сегодня. В моем случае мои учетные данные для другого пользователя были сохранены диспетчером учетных данных Windows. Таким образом, удаляя/удаляя учетные данные git с помощью следующей команды, git config --global --unset credential.helper
не помогло Мне пришлось вручную удалить запись в Windows, следуя приведенному ниже пути,
Пуск → Панель управления ---> Учетные записи пользователей ---> Управление учетными данными ---> Учетные данные Windows
Затем найдите запись, например, git: https://github.com и удалите ее. После этого все работает нормально.
Решением для меня было добавить запись в мой файл ~/.ssh/config для github. Я должен был сделать это, потому что:
Запись, которую я добавил:
Host github.com
Hostname github.com
Port 22
User waterproofpatch
IdentityFile ~/.ssh/id_rsa_waterproofpatch
Я создал новый ключ, уникальный для моей учетной записи, как id_rsa_waterproofpatch. Эта запись в моей конфигурации ssh указывает, что для подключений к github.com я хочу предоставить этот ключ.
Другое решение, вероятно, было бы для меня, чтобы войти в другую учетную запись, удалить дубликат ключа SSH.
очистка цепочки для ключей не помогла... Мне пришлось ssh-add -D
и заново добавить ключ с помощью ssh-add <keyfile>
Я решил эту проблему, удалив (или переименовав в *.bak) файл id_rsa и id_rsa.pub в MacOS High Sierra. Идея отсюда.
У меня есть пользовательские перенаправления хоста в ~/.ssh/config, которые должны быть применены, но я использовал неправильного пользователя, прежде чем я переименовал два файла...
Вот что у меня сработало:
Перейдите в диспетчер учетных данных Windows на панели управления, и там вы сможете найти данные учетных данных вашей учетной записи Github, а также там вы можете отредактировать имя пользователя и пароль. После выполнения этих действий снова нажмите на код, и ваш код будет добавлен в вашу текущую учетную запись Github.
Что сработало для меня, удалив репо и добавив его снова:
git remote rm origin
git remote add origin [email protected]:fguillen/MyApp.git
У меня такая же проблема в windows10 даже после удаления моего git, так как @user542833 говорит, что это потому, что кеш Windows и вы должны удалить учетные данные Github в вашем Credential Manager
а когда вы снова пытаетесь нажать, Windows запрашивает ваши учетные данные и устанавливает его снова
Что мне помогло, так это использование https-адреса Github-репо вместо URL-адреса ssh. Я перешел на страницу проекта Github и скопировал URL-адрес https в буфер обмена, а затем вставил его во вторую команду ниже:
git remote rm origin
git remote add origin https://[...]
У меня была похожая проблема, и оказалось, что проблема заключалась в том, что файл открытого ключа содержал мой адрес электронной почты в последней строке. Это, казалось, переопределило настройку пользователя в моей конфигурации. Как только я удалил свою электронную почту из файла .pub (и повторно загрузил ее в репозиторий), Git подключился с использованием правильного пользователя.