git толкает с неправильным пользователем из терминала



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



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



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



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



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



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



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



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



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



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



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



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



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



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и теперь он принимает мои учетные данные, даже не заставляя пользователя. Это странно. Спасибо всем за вашу помощь, вы отличные ребята !

649   10  

10 ответов:

У меня просто была эта проблема на работе. Встроенный git, который поставляется с mac или поставляется при установке Xcode, кэширует учетные данные git в keychain. Исправление для меня было:

start keychain access (start spotlight через cmd + space, введите keychain, нажмите enter)

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

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

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

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

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

источник

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

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

имя автора и коммиттера и электронная почта (которые важны для 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 репозитория, но я не думаю, что это хороший вариант.

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

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

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

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

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

решение для меня было добавить запись в мой~/.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.

очистка брелка не помогла... Я должен был ssh-add -D и повторно добавить ключ с ssh-add <keyfile>

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

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

вот что сработало для меня:

  1. изменение учетных данных внутри .ГИТ-учетными данными
  2. изменение глобального user.name и пользователь.электронная почта внутри .gitconfig

Comments

    Ничего не найдено.