Eu tenho um problema com o git e meu terminal.
Aqui está uma galeria para mostrar meu problema: http://imgur.com/a/6RrEY
Quando eu envio commits do meu terminal, git diz que eu os empurro com outro nome de usuário, que é um usuário da minha organização (minha empresa) sem nenhum commit e parece que não pertence a ninguém: (verifique a primeira foto da galeria)
Mas isso não acontece quando eu uso o Github para mac, no feed vejo os commits empurrados por mim mesmo.
O problema também afeta meus repositórios pessoais, meu terminal diz que não tenho permissão para enviar commits nesses repositórios (o que é obviamente errado), uma vez que tenta enviá-lo com este usuário: (verifique a segunda foto da galeria)
Adivinha ? Isso não acontece com o Github para mac também.
Eu mudei meu computador para um novo há alguns dias, então eu redefini todas as minhas chaves ssh do github e deixei apenas uma nova gerada pelo Github para Mac, então eu não acho que haja algum usuário fantasma / chave ssh escondida em algum lugar, este disco rígido é novo: (verifique a terceira foto da galeria)
Meu arquivo .gitconfig está limpo, há apenas minhas credenciais: (verifique a quarta foto da galeria)
Eu realmente não entendo, ajude, StackOverflow, você é minha única esperança.
(Minhas desculpas por minhas pobres habilidades no Gimp e pela referência de Star Wars)
EDITAR: ssh-add -l
mostra apenas a boa chave ssh criada pelo github para mac e eu tenho apenas uma conta no github
EDIT2: ssh -T [email protected]
reconheça-me como o bom usuário.
EDIT3: Depois de alguns testes, parece que meu terminal faz commits com meu nome de usuário, mas os empurra com o outro, Github para mac commits e empurra com o bom nome de usuário. Essa situação acontece com cada repo que tenho / faço (mesmo os novos uns).
EDIT4: Em um repositório pessoal git log --pretty="%h %an %ae"
mostra meu bom nome de usuário
EDIT5: Nenhum sinal de variáveis de ambiente que substituiriam minhas credenciais no meu env
. Mesmo se eu tentar definir essas variáveis com boas credenciais, o problema persiste.
EDIT6: As coisas funcionam normalmente se eu forçar o usuário no caminho /.git/config
de um repositório, mas não acho que seja uma boa opção:http://[email protected]/USER/REPO.git
EDIT7: Excluímos o usuário git que enviou os commits para mim e isso traz outro erro:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
EDIÇÃO FINAL: Instalei o git com homebrew, digitei git config --global push.default simple
e agora ele leva minhas credenciais mesmo sem forçar o usuário. Isso é estranho. Obrigado a todos pela ajuda, vocês são ótimos caras!
~/.gitconfig
e$project_root/.git/config
arquivos. Um desses dois certamente está mal configurado para nome de usuário.~/.gitconfig
é claro e assim é$project_root/.git/config
. Na verdade, tenho esse problema com todos os projetos pessoais, projetos de trabalho podem ser empurrados, pois esse outro usuário pertence à minha organização que possui esses repositórios.Respostas:
Eu só tive esse problema no trabalho. O git integrado que vem com o mac ou quando você instala o xcode armazena as credenciais do git no keychain. A solução para mim foi:
iniciar o acesso do keychain (iniciar o destaque via cmd + espaço, digite keychain, pressione Enter)
Abaixo de chaveiros no canto superior esquerdo, selecione "login" Na categoria à esquerda, selecione "senhas"
encontre o nome "github" e exclua-o.
fonte
seahorse
no Ubuntu.O github identifica você pela chave ssh que vê, não por qualquer configuração do git.
Portanto, você precisa garantir que a chave ssh de sua conta de trabalho não esteja em seu chaveiro ao tentar empurrar de sua conta pessoal e vice-versa.
Use
ssh-add -l
para determinar quais chaves estão em seu chaveiro essh-add -d <keyfile>
para remover uma chave de seu chaveiro, se for necessário remover a chave ssh 'indesejada'~/.ssh/config
.fonte
NB: Github ainda identificará seu commit baseado apenas no e-mail.
fonte
user.email
estar configurado corretamente. Gostaria de poder votar cinco vezes.ssh-add -D
ssh-add -l
isso, recebo uma resposta que não ajuda. Digita4096 SHA256:lotsOfGibberish,about40chars (RSA)
não sei como nos dar essa informação.Apesar de todas as ótimas opções oferecidas por outros usuários, a única maneira de consertar isso era reinstalar o git completamente e digitar
git config --global push.default simple
para reescrever boas credenciais.fonte
git config --system --unset credential.helper
funcionou para mim, agora são solicitadas minhas credenciais do GitHub no push novamente e posso fornecer o ID de usuário e a senha corretos.git config --system --unset credential.helper
não funciona no Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Estou usando o Windows 10 e enfrentei o mesmo problema hoje. No meu caso, minhas credenciais de usuário diferente foram salvas pelo gerenciador de credenciais do Windows. Assim, excluindo / desmarcando credenciais git com o comando abaixo,
git config --global --unset credential.helper
não ajudou. Tive que excluir manualmente a entrada no Windows seguindo o caminho abaixo,
Iniciar -> Painel de controle ---> Contas de usuário ---> Gerenciar suas credenciais ---> Credenciais do Windows
Em seguida, procure uma entrada como git: https://github.com e remova-a. Funciona bem depois disso.
fonte
O nome do autor e do committer e o e-mail (que são importantes para o GitHub) são derivados de:
No entanto, conforme mencionado em
git config
egit commit-tree
, esses valores podem ser substituídos por variáveis de ambiente:Portanto, verifique novamente essas variáveis.
Mas deve ser uma boa solução.
Ao usar uma url https, sempre especifico o usuário nela para garantir que a autenticação seja feita com o usuário certo.
fonte
git config
credenciais estão corretas e não há variáveis de ambiente definidas em meu/username/.bashrc
arquivo ...env
'.http://[email protected]/USER/REPO.git
Uma solução temporária é executada primeiro e, em
killall ssh-agent
seguida, adicione as chaves ssh geradas para a conta que você precisa usarssh-add ~/.ssh/id_4shameer
Isso nos ajudará a trabalhar em várias contas github quando obtermos o erro do tipo
ERROR: Permission to user/repo-git.git denied to username.
fonte
killall
, o ssh-agent deve ser reiniciado comeval "$(ssh-agent -s)"
, e ossh-add
comando deve ser executado comsudo
.Se você estiver usando MAC, vá para Keychain Access e remova a entrada do usuário para o qual você não deseja acesso git.
fonte
A solução para mim foi adicionar uma entrada no meu arquivo ~ / .ssh / config para o github. Eu tive que fazer isso porque:
A entrada que adicionei é:
Eu havia criado uma nova chave, exclusiva para minha conta, como id_rsa_waterproofpatch. Esta entrada em minha configuração de ssh especifica que, para conexões com github.com, desejo apresentar esta chave.
Outra solução provavelmente seria fazer o login na outra conta e excluir a chave ssh duplicada.
fonte
Eu tive um problema semelhante e descobri que o problema era o fato de que o arquivo de chave pública continha meu endereço de e-mail na última linha. Isso pareceu substituir a configuração do usuário em minha configuração. Assim que removi meu e-mail do arquivo .pub (e reenviei para o meu repo), o Git se conectou usando o usuário correto.
fonte
O que funcionou para mim foi usar a URL https do repositório Github em vez da URL ssh . Eu fui para a página do projeto Github e copiei o URL https em minha área de transferência e, em seguida, colei no segundo comando abaixo:
fonte
Que dor de cabeça!
problema:
se transforma por uma razão desconhecida, git push estava usando o usuário errado. Eu tenho alguns IDs de usuário de hub git diferentes. Eu trabalho para 2 empresas diferentes e também tenho uma carteira de estudante
Estou trabalhando em um mac. aqui está o que eu finalmente fiz
1) remova o credential.helper
uma. você precisa descobrir onde o credential.helper está configurado
b. depois de encontrar o arquivo fig correto, remova-o da seguinte maneira
Agora, em meu repositório local, eu hackeei o arquivo .git / config
eu mudei
para
fonte
No meu caso específico, o problema era que eu estava usando um
.netrc
para acessargithub.com
e ele estava configurado com um token de um usuário diferente:fonte
limpar o chaveiro não ajudou ... Eu tive que
ssh-add -D
adicionar a chave novamente comssh-add <keyfile>
fonte
Resolvi esse problema removendo (ou renomeando para * .bak) os arquivos id_rsa e id_rsa.pub no MacOS High Sierra. Ideia daqui .
Eu tenho redirecionamentos de host personalizados em ~ / .ssh / config que devem ser aplicados, mas usei o usuário errado antes de renomear os dois arquivos ...
fonte
Isso é o que funcionou para mim:
fonte
O que funcionou para mim remover o repo e adicioná-lo novamente:
fonte
Eu tenho o mesmo problema no windows10, mesmo depois de desinstalar meu git, como @ user542833 diz que é porque o cache do windows e você deve remover as credenciais do Github em suas janelas
Credential Manager
e quando você tenta empurrar novamente, o windows pede sua credencial e define novamentefonte
Acabei de passar 6 horas descobrindo isso ao tentar enviar para um novo repositório de páginas do GitHub em uma nova conta.
Mesmo depois de definir a configuração user.name e user.email, o padrão seria minha conta principal.
Isso ocorre porque a chave ssh será padronizada como id_rsa (minha conta principal).
Para usar a nova conta, tive que executar:
ssh-add ~/.ssh/my_new_key
que fará com que o git use a nova chave ao pressionar.
fonte