У меня проблема с git и моим терминалом.
Вот галерея, чтобы показать вам мою проблему: http://imgur.com/a/6RrEY
Когда я нажимаю коммиты с моего терминала, git говорит, что я нажимаю на них с другим именем пользователя, это пользователь из моей организации (моей компании) без фиксации вообще, и кажется, что он никому не принадлежит: (проверьте первую картинку в галерее)
Но этого не происходит, когда я использую Github для Mac, в ленте я вижу коммиты, отправленные мной.
Проблема также влияет на мои личные репозитории, мой терминал говорит, что у меня нет разрешения на отправку коммитов в эти репозитории (что, очевидно, неверно), поскольку он пытается подтолкнуть его к этому пользователю: (проверьте второе изображение галереи)
Угадай, что ? Этого не происходит и с Github для Mac.
Я сменил свой компьютер на совершенно новый несколько дней назад, поэтому я сбросил весь свой ssh-ключ github и оставил только новый, сгенерированный Github для Mac, поэтому я не думаю, что там скрыт какой-то призрачный пользователь / ssh-ключ где-то этот жесткий диск совершенно новый: (проверьте третье фото в галерее)
С моим файлом .gitconfig все ясно, есть только мои учетные данные: (проверьте четвертый рисунок галереи)
Я правда не понимаю, помогите, StackOverflow, ты моя единственная надежда.
(Приношу свои извинения за мои плохие навыки GIMP и ссылку на Звездные войны)
РЕДАКТИРОВАТЬ: ssh-add -l
показывает только хороший ключ ssh, созданный github для Mac, и у меня только одна учетная запись github
EDIT2: признайте ssh -T git@github.com
меня хорошим пользователем.
EDIT3: после нескольких тестов похоже, что мой терминал выполняет коммиты с моим именем пользователя, но подталкивает их к другому, Github для Mac фиксирует и нажимает с хорошим именем пользователя. Эта ситуация происходит с каждым репо, которое я / делаю (даже новым единицы).
EDIT4: в личном репозитории git log --pretty="%h %an %ae"
показывает мое хорошее имя пользователя
EDIT5: нет признаков переменных среды, которые переопределяли бы мои учетные данные в моем env
. Даже если я попытаюсь установить эти переменные с хорошими учетными данными, проблема не исчезнет.
EDIT6: все работает нормально, если я заставляю пользователя указывать путь /.git/config
к репозиторию, но я не думаю, что это хороший вариант:http://USER@github.com/USER/REPO.git
EDIT7: мы удалили пользователя git, который отправил за меня коммиты, и это вызывает еще одну ошибку:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ: я установил git с помощью homebrew, набрал, git config --global push.default simple
и теперь он принимает мои учетные данные, даже не заставляя пользователя. Это странно. Спасибо всем за помощь, вы молодцы!
~/.gitconfig
и$project_root/.git/config
файлы. Одно из этих двух наверняка неправильно настроено для имени пользователя.~/.gitconfig
ясно и так есть$project_root/.git/config
. Фактически, у меня есть эта проблема с каждым личным проектом, рабочие проекты могут быть отправлены, поскольку этот другой пользователь принадлежит моей организации, которой принадлежат эти репозитории.Ответы:
Просто у меня на работе возникла эта проблема. Встроенный git, который поставляется с Mac или поставляется при установке xcode, кэширует учетные данные git в связке ключей. Исправление для меня заключалось в следующем:
запустить доступ к связке ключей (запустите прожектор через cmd + пробел, введите keychain, нажмите Enter)
В разделе "Связки для ключей" слева вверху выберите "Войти". В разделе слева выберите "пароли".
найдите имя "github" и удалите его.
источник
seahorse
в Ubuntu.github идентифицирует вас по ключу ssh, который он видит, а не по какой-либо настройке из git.
Следовательно, вам необходимо убедиться, что ssh-ключ вашей рабочей учетной записи не находится в вашем связке ключей, когда вы пытаетесь нажать из своей личной учетной записи и наоборот.
Используйте,
ssh-add -l
чтобы определить, какие ключи находятся в вашем связке ключей, иssh-add -d <keyfile>
чтобы удалить ключ из вашей связки ключей, если он не работает, удалите «нежелательный» ключ ssh из~/.ssh/config
.источник
NB: Github по-прежнему будет определять вашу фиксацию только на основе электронного письма.
источник
user.email
был настроен правильно. Хотел бы я проголосовать пять раз.ssh-add -D
ssh-add -l
я получаю бесполезный ответ. Типа,4096 SHA256:lotsOfGibberish,about40chars (RSA)
я не знаю, как нам эту информацию.Несмотря на все отличные возможности, предоставленные другими пользователями, единственный способ исправить это - полностью переустановить git и ввести,
git config --global push.default simple
чтобы переписать хорошие учетные данные.источник
git config --system --unset credential.helper
работал у меня, теперь меня снова просят ввести мои учетные данные GitHub при нажатии, и я могу предоставить правильный идентификатор пользователя и пароль.git config --system --unset credential.helper
не работает в Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Я использую Windows 10 и сегодня столкнулся с той же проблемой. В моем случае мои учетные данные для другого пользователя были сохранены диспетчером учетных данных Windows. Таким образом, удаление / отключение учетных данных git с помощью команды ниже,
git config --global --unset credential.helper
не помогло. Мне пришлось вручную удалить запись в Windows, выполнив следующие действия:
Пуск -> Панель управления ---> Учетные записи пользователей ---> Управление учетными данными ---> Учетные данные Windows
Затем найдите запись вроде git: https://github.com и удалите ее. После этого все работает нормально.
источник
Имя автора, коммиттера и адрес электронной почты (которые важны для GitHub) получены из:
Однако, как указано в
git config
иgit commit-tree
, эти значения могут быть переопределены переменными среды:Так что перепроверьте эти переменные.
Но это должно быть хорошее решение.
При использовании https-адреса я всегда указываю в нем пользователя, чтобы убедиться, что аутентификация выполняется с правильным пользователем.
источник
git config
учетные данные/username/.bashrc
env
' вывод.http://USER@github.com/USER/REPO.git
Сначала запускается временное решение,
killall ssh-agent
затем добавляются ключи ssh, сгенерированные для учетной записи, которую необходимо использовать.ssh-add ~/.ssh/id_4shameer
Это поможет нам работать с несколькими учетными записями github, когда мы получим ошибку типа
ERROR: Permission to user/repo-git.git denied to username.
источник
killall
, ssh-agent должен быть перезапущен с помощьюeval "$(ssh-agent -s)"
, иssh-add
команда должна быть выполнена сsudo
.Если вы используете MAC, перейдите в раздел «Связка ключей» и удалите запись пользователя, для которого вам не нужен доступ с помощью git.
источник
Решением для меня было добавить запись в мой файл ~ / .ssh / config для github. Мне пришлось это сделать, потому что:
Я добавил:
Я создал новый ключ, уникальный для моей учетной записи, как id_rsa_waterproofpatch. Эта запись в моей конфигурации ssh указывает, что для подключений к github.com я хочу предоставить этот ключ.
Другим решением, вероятно, было бы для меня войти в другую учетную запись, удалить повторяющийся ключ ssh.
источник
У меня была аналогичная проблема, и оказалось, что проблема заключалась в том, что файл открытого ключа содержал мой адрес электронной почты в последней строке. Похоже, это переопределило настройку пользователя в моей конфигурации. Как только я удалил свою электронную почту из файла .pub (и повторно загрузил его в репо) Git подключился с использованием правильного пользователя.
источник
Что сработало для меня, так это использовать URL-адрес https репозитория Github вместо URL-адреса ssh . Я перешел на страницу проекта Github и скопировал URL-адрес https в буфер обмена, а затем вставил его во вторую команду ниже:
источник
Какая боль в заднице!
проблема:
поворачивается по неизвестной причине, по которой git push использовал не того пользователя. У меня есть несколько разных идентификаторов пользователей git hub. Я работаю в 2-х разных компаниях и имею студенческий билет
Я работаю на Mac. вот что я наконец сделал
1) удалите credential.helper
а. вам нужно выяснить, где настроен credential.helper
б. как только найдете правильный файл fig, удалите его следующим образом
Теперь в моем локальном репо я взломал файл .git / config
Я изменился
к
источник
В моем конкретном случае проблема заключалась в том, что я использовал
.netrc
для доступа,github.com
и он был настроен с токеном от другого пользователя:источник
очистка связки ключей не помогла ... Мне пришлось
ssh-add -D
заново добавить ключ с помощьюssh-add <keyfile>
источник
Я решил эту проблему, удалив (или переименовав в * .bak) файлы id_rsa и id_rsa.pub в MacOS High Sierra. Идея отсюда .
У меня есть настраиваемые перенаправления хоста в ~ / .ssh / config, которые должны быть применены, но использовались неправильным пользователем, прежде чем я переименовал два файла ...
источник
Вот что сработало для меня:
источник
Что сработало для меня, удалив репо и добавив его снова:
источник
У меня такая же проблема в windows10 даже после удаления моего git, поскольку @ user542833 говорит, что это потому, что кеш Windows, и вы должны удалить учетные данные Github в своих окнах,
Credential Manager
и когда вы снова пытаетесь нажать, окна запрашивают ваши учетные данные и устанавливают их сноваисточник
Просто потратил 6 часов на то, чтобы понять это, когда пытался нажать на новое репозиторий страниц GitHub в новой учетной записи.
Даже после установки конфигурации user.name и user.email по умолчанию будет использоваться моя основная учетная запись.
Это потому, что ключ ssh по умолчанию будет id_rsa (моя основная учетная запись).
Чтобы использовать новую учетную запись, мне пришлось запустить:
ssh-add ~/.ssh/my_new_key
который затем заставит git использовать новый ключ при нажатии.
источник