Eu e um amigo estamos compartilhando meu computador. Fiz push para o GitHub usando o shell git bash no Windows 7. Agora, estamos em um projeto diferente no computador e preciso que ela envie para a conta dela. Mas continua tentando usar meu nome de usuário e dizendo que não tenho acesso ao repositório dela:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) antes de empurrargit config --local credential.helper ""
pode fazer o truque.Respostas:
Se você usar diferentes usuários do Windows, suas configurações de chave SSH e git serão independentes.
Se essa não é uma opção para você, seu amigo deve adicionar sua chave SSH à conta do Github dela.
Embora, a solução anterior o mantenha pressionando como você, mas permitirá que você pressione o repo dela. Se você não quiser isso e trabalhar em uma pasta diferente no mesmo PC, poderá configurar o nome de usuário e o email localmente dentro de uma pasta com git, removendo a
-g
flag do comando config:Como alternativa, se você empurrar o
https
protocolo, o Github solicitará o nome de usuário / senha todas as vezes (a menos que você use um gerenciador de senhas).fonte
git config --global user.name "Mona Lisa"
Isso funcionou para mim, ele solicitará o nome de usuário e a senha
fonte
helper = cache --timeout=999999
colocado no meu.gitignore
e isso funcionou. Mas alguma maneira de redefinir isso sem alterar uma configuração local, eu me pergunto?credential.helper
repositório local para ignorar o (provavelmente globalmente) configurado , por exemplo, o armazenamento de credenciais do Windows. Isso também significa que ele solicita um nome de usuário / senha sempre que necessário, pois nada está configurado. Portanto, talvez você também possa configurar ocredential.helper
cache (consulte a resposta de @Ciro Santilli) ou usar uma resposta diferente aqui.Você pode enviar usando uma conta diferente. Por exemplo, se sua conta é A, armazenada em .gitconfig, e você deseja usar a conta B, que é a proprietária do repositório que deseja enviar por push.
Conta B : B_user_name, B_password
Exemplo de link SSH: https://github.com/B_user_name/project.git
O push com a conta B é:
Para ver a conta em .gitconfig
$git config --global --list
$git config --global -e
(para mudar de conta também)fonte
user.name
,user.email
na configuração local, clonei com nome de usuário e não funcionei; agora a última resposta funciona sem tocar chaveiro / whatever ... inGit 2.9.0 in Windows
. "finalmente, mas não menos importante" .. é assim que se chama. Obrigado. Essa resposta merece mais votos.https://'B_user_name'@github.com/B_user_name/project.git
. Isso deve solicitar a senha deB_user_name
.Eu configurei um alias ssh usando um personalizado
IdentityFile
e reescrevi a origem para usar meume-github
nome de host personalizado .fonte
git remote set-url origin git@user1-github:user1/my-repo.git
😊Se você usar um URL SSH (
[email protected]:username/projectname.git
) em vez de um URL HTTPS, poderá especificar temporariamente uma chave SSH diferente usando a$GIT_SSH_COMMAND
variável de ambiente:Pelo que sei, com URLs SSH, o GitHub não se importa com nomes de usuários, apenas com chaves: se uma conta de usuário tiver acesso a um repositório e essa conta tiver uma chave SSH (consulte a página de chaves SSH na conta configurações), se você usar essa chave SSH para enviar para esse repositório, o envio será tratado como proveniente desse usuário.
fonte
user.name
euser.email
emgit config
mudará a conta que uma consolidação está relacionada comSe, depois de executar o
git push
Git, solicitar uma senha deuser
, mas você desejar enviar comonew_user
, você pode usargit config remote.origin.url
:Neste ponto, use
^C
para sairgit push
e use a seguir para pressionar comonew_user
.fonte
git config remote.origin.url https://[email protected]/different_user/repo.git
É simples enquanto clonar, leve o URL do git com seu nome de usuário. Ao confirmar, ele solicitará sua nova senha de usuário.
Por exemplo:
git clone https: //[email protected]/username/reponame.git
git clone https: //[email protected]/username/reponame.git
fonte
fatal: repo not found
.se esse é o seu problema
Além de alterar o nome de usuário e o email do terminal usando o git config:
você precisará remover as informações de autorização do Keychain. Esta solução levou várias horas para descobrir. Descobri que também tinha certificado no meu chaveiro.
Abra o acesso ao chaveiro, clique em Todos os itens e procure por git. Excluir todas as chaves
fonte
Eu tenho usado uma máquina para enviar código para duas contas diferentes do GitHub com nome de usuário diferente. Supondo que você já configurou uma conta e deseja adicionar uma nova:
ssh-keygen -t rsa -C "[email protected]"
id_rsa
. Dê um nome diferente, por exemploid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
e edite o arquivo fornecendo configurações para suas contas:Agora você deve poder enviar contas diferentes, dependendo da chave que você adicionar ao agente ssh, ou seja, usar sua primeira conta
ssh-add ~/.ssh/id_rsa
.Você também pode alterar seu email de usuário:
git config --global user.email "[email protected]"
ou limpe as chaves ssh em caso de erro de permissão ao inserir código em uma das contas:
ssh-add -D
fonte
git push
funciona? Você deve poder pressionar depois de adicionar sua chaveVá para o Credential Manager Vá para Windows Credentials Exclua as entradas em Generic Credentials Tente conectar-se novamente.
fonte
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Como mencionado anteriormente, você pode usar
para definir manualmente o nome de usuário e o email para um repositório único, mas você deve adicionar este comando:
se você já tentou empurrar antes da alteração. Caso contrário, as alterações não aparecerão no arquivo de configuração.
fonte
--reset-author
(com--
...) colocará o último nome / email configurado na última confirmação e também o último carimbo de data / hora. Não afeta as alterações no arquivo de configuração.Você pode adicionar um novo URL remoto para o outro nome de usuário usando
git remote add origin-username https://[email protected]/repository_name.git
Depois disso, se você pressionar usando
git push -u origin-username master
, isso solicitará a senha.fonte
O git config user.name altera apenas o nome que eu confirmo. Eu ainda não posso empurrar. Foi assim que resolvi e acho que é uma maneira fácil para mim.
Gere uma chave SSH com o nome de usuário que você deseja enviar no computador e usará https://help.github.com/articles/connecting-to-github-with-ssh/
Adicione essa chave à conta de usuário do github que você deseja enviar para https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Escolha Clonar com SSH
Você pode enviar como usuário esse repositório agora.
fonte
Se no Windows e no usuário Git for Windows e no
manager
para gerenciar as credenciais (também conhecido comoGit-Credential-Manager-for-Windows
Link ), o problema é que não há uma maneira fácil de alternar entre os usuários ao passar para o GitHubhttps
usandoOAuth
tokens.O motivo é que o token é armazenado como:
git:https://github.com
Personal Access Token
OAuth_Token
Variações do URL em
Internet Address
não funcionam, por exemplo:git:https://[email protected]
git:https://github.com/username
A solução: namespaces . Isso é encontrado nos detalhes para a configuração do
Git-Credential-Manager-for-Windows
:Citando a partir dele:
Agora, armazene sua credencial no Windows Credential Manager como:
git.username:https://github.com
Personal Access Token
OAuth_Token
Observe que nós mudamos:
git
->git.username
(onde você alterausername
para o seu nome de usuário real ou para o efeito, para o que quiser como identificador exclusivo)Agora, dentro do repositório em que você deseja usar a entrada específica, execute:
(Novamente ... substitua
username
pelo valor desejado)Sua
.git/config
vontade agora contêm:Et voilá! A credencial correta será extraída do Windows Credential Store.
Isso, é claro, não muda qual usuário / email está enviando. Para isso você tem que configurar o habitual
user.name
euser.email
fonte
git config credential.namespace git.username
como mencionado (substituindo o nome de usuário). Se você pressionar da próxima vez, o git solicitará as novas credenciais para o nome de usuário.Eu não conseguia descobrir como ter uma identidade do segundo github em uma máquina (nenhuma dessas respostas funcionou para mim), mas descobri como ser capaz de enviar para várias contas diferentes do github como eu.
Envie o mesmo nome de usuário, mas para diferentes contas do github
Configure uma segunda chave SSH ( assim ) para sua segunda conta do github
Alterne entre contas assim:
Empurre com minha nova conta do 2º github
Enviar com minha conta principal
fonte
Se você tiver https://desktop.github.com/
, poderá acessar Preferências (ou Opções) -> Contas
e sair e entrar .
fonte
O ID do usuário em que a confirmação ocorre é armazenado no arquivo de configuração.
vá para o topo do repositório vi .git / config
altere a linha de URL listada após "origem" [remota ""] para ter o ID do usuário apropriado
fonte
Se você usa ssh e obtém
enquanto você não deseja enviar como Alice_username, verifique se Alice_username não possui a chave ssh do seu computador adicionada à conta do github.
Eu apaguei minha chave ssh da conta do github de alice e o push funcionou.
fonte