Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Utilizar usuários distintos no mesmo computador local para colaborar no GIT

Olá, Estou usando um mesmo computador (é um mac) e tenho dúvidas de como usar o mesmo cenário do descrito na aula 3 - "Sincronização de dos dados com o repositório", onde há dois usuários: 'brienze1' e 'brienze2'. Seria o mesmo cenário descrito na aula que utilizou os usuários 'jcfonsecagit' e 'mmsoaresgit'.

Eu criei um projeto no github e já tenho os 2 usuários (brienze1 e brienze2) configurados nesse projeto. Tenho dúvida de como efetuar colaboração nesse projeto a partir de uma mesma máquina mac com os 2 usuários. Isso porque eu gostaria de praticar tratamentos de conflitos e merge manual.

O cenário que gostaria:

(1) Clonei um projeto 'Meu Site', efetuei as modificações e fiz um push com usuário 'brienze1';

(2) Clonei o mesmo projeto 'Meu Site' (em outro diretório), efetuei outras modificações e fiz outro push, porém com usuário 'brienze2'

É possível ? Ou tenho que efetuar configuração ssh com múltiplos pares de SSH?

Obrigado.

8 respostas

Só de logar com usuário diferente e fazer o push já fica registrado nesse usuário. Você pode acompanhar isso via Github, inclusive. Lá mostram as contribuições dos diferentes usuários.

Olá Bruno, Você se refere a logar na máquina local com outro usuário ?

Obrigado.

Logar no Git com outro usuário. A não ser que você tenha configurado o Git pra salvar suas credenciais, a cada push serão solicitadas credenciais. Qual usuário você colocar será o que ficará com o push registrado.

Entendi, e como eu faria para fazer com que o git solicitasse as credenciais para cada push ? Gostaria de fazer isso para que pudesse praticar os tratamentos de conflito de modo mais ágil, entende ? Ou você tem outra sugestão ? Obrigado.

Fala aí Marcos blz?

Uma outra forma é você configurar duas chaves ssh, dessa forma você pode usar um único usuário no computador.

Você efetua o clone em diretórios diferentes e ao fazer o push em cada diretório você estará utilizando uma conta diferente.

Para isso você deve criar uma nova chave ssh.

ssh-keygen -t rsa -C "email@segundaconta.com"

Ao executar esse comando será exibido algumas mensagens e será solicitado que você selecione o diretório que será gerado sua chave ssh: Enter file in which to save the key (/Users/SeuUsuario/.ssh/id_rsa).

Nesse momento você deve especificar um novo nome para o arquivo (do contrário será substituído o já existente), você pode especificar algo assim: /Users/SeusUsuario/.ssh/id_rsa_segundousuario.

Faz o processo normal para vincular a chave pública dessa chave ssh com o segundo usuário.

Dessa forma agora você tem duas chaves ssh mas precisa configurar quando deve ser usada cada uma delas.

Crie um arquivo com o nome config dentro do diretório ~/.ssh com um conteúdo mais ou menos assim.

#Default Github Account
Host github.com
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa

#Second Github Acount
Host github-second
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_segundousuario

Agora imagine que temos o seguinte repositório para clonarmos git@github.com:SeuUsuario/teste.git.

posso usar um dos dois Host que tem no arquivo ~/.ssh/config.

Ao usar git clone git@github.com:SeuUsuario/teste.git estarei usando minha conta padrão.

Para usar a segunda conta basta mudar o host do repositório: git clone git@github-second:SeuUsuario/teste.git.

No diretório do segundo usuário talvez seja necessário configurar user.name e user.email.

git config --add user.name "Segundo Usuario"
git config --add user.email email@segundaconta.com

Espero ter ajudado

Olá Fernando,

Perfeito, funcionou !! Consegui efetuar modificações no mesmo repositório remoto com 2 usuários distintos (2 contas no github) em minha máquina.

Apenas um detalhe, eu tive que cadastrar a chave SSH na configuração do usuário no GitHub, pois estava dando o erro abaixo:

Marcoss-MacBook-Pro:marcosedusw brienze$ git clone git@github-second:brienze/meu-site.git
Cloning into 'meu-site'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Isso realmente era necessário ?

Obrigado !!

solução!

Boa Marcos,

Então é necessário sim, eu me expressei mal na resposta anterior.

Quando disse: Faz o processo normal para vincular a chave pública dessa chave ssh com o segundo usuário.

Era exatamente sobre vincular sua nova chave publica com sua segunda conta do Github.

Oi Fernando,

Legal !!

E muito obrigado pela ajuda !

Abs.

Marcos