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и теперь он принимает мои учетные данные, даже не заставляя пользователя. Это странно. Спасибо всем за вашу помощь, вы отличные ребята !
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. Я должен был сделать это, потому что:
- у меня было несколько учетных записей github с одним и тем же ключом (не делайте этого!)
- когда вы "git push" с помощью ssh, ваш компьютер захватывает id_rsa по умолчанию и использует его в качестве идентификатора ssh.
- github не может (неудивительно) деконфликтировать, какую учетную запись вы имеете в виду, так как он основывает учетную запись с ключа, который он представлен, который если привязан к более чем одному счет, приводит к такой боли. Убийца, в течение долгого времени, мне это сходило с рук, и все просто сработало.
запись, которую я добавил:
Host github.com Hostname github.com Port 22 User waterproofpatch IdentityFile ~/.ssh/id_rsa_waterproofpatchЯ создал новая ключ, уникальный для моей учетной записи, как id_rsa_waterproofpatch. Эта запись в моей конфигурации ssh указывает, что для подключений к github.com, я хочу представить этот ключ.
другое решение было бы для меня, чтобы войти в другую учетную запись, удалить дубликат ключа ssh.
Я решил эту проблему удалив (или переименовав в *.bak) id_rsa и id_rsa.файл паба на MacOS High Sierra. Идея от здесь.
У меня есть пользовательские перенаправления хоста в ~/.ssh / config, который должен быть применен, но использован неправильным пользователем, прежде чем я переименовал два файла...
вот что сработало для меня:
- изменение учетных данных внутри .ГИТ-учетными данными
- изменение глобального user.name и пользователь.электронная почта внутри .gitconfig
Comments