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

Estado do remote "local"

Eu estou em dúvida sobre a estrutura que o curso está usando: temos um servidor remoto "local" e outro no GitHub.

Neste ponto do exercício, como está o remote "local"? As alterações feitas nas aulas anteriores estão automaticamente no "local"? Ou eu preciso dar um "pull" do GitHub e depois um "push" para o local?

Aliás, o fato de existir esse "local" eu ainda estou achando um pouco confuso. Se já temos um repositório remoto no GitHub, qual a necessidade de se manter o remote "local"? Entendo que, no início do curso, valia seu conteúdo didático, mas agora não entendo mais a necessidade dele.

E como comparar os conteúdos dos dois "remotes" (local e origin)?

4 respostas

Olá Julio, tudo bem? Nesse ponto, as novas mudanças foram enviadas apenas para o remoto no GitHub, e o remoto local não tem esse conteúdo, e então é realmente preciso fazer o git pull do remoto do GitHub e logo em seguida fazer o git push para o remoto local.

Sobre a "necessidade de manter o remoto local", acho que não existe uma real necessidade, porém tudo foi feito usando esse remoto por questões didáticas até o momento, e por isso ele foi mantido, mas quase que ignorado desse momento em diante. Mas é interessante, as vezes precisamos utilizar dois remotos, como por exemplo, você pode ter um remoto do GitHub, e também um remoto que aponta para um servidor remoto, na verdade um servidor que está executando sua aplicação, então é uma ideia legal que pode vir a ser útil em alguns casos.

E respondendo sua última pergunta, é possível fazer a comparação entre dois branches usando o comando git diff, como por exemplo:

git diff branch1..branch2

Precisamos informar os nomes dos branches que queremos comparar separados por dois pontos (..), para saber mais sobre esse comparação você pode dar uma olhada nesse post (em inglês) bem legal.

Espero ter esclarecido todas as suas dúvidas ;)

Bom dia Jonilson. Obrigado pelas respostas.

Em relação ao remoto "local" acho que ficou bem explicado. Mas, em relação à comparação de branches, minha dúvida persiste porque o que eu gostaria, nesse caso, é de comparar o branch master dos dois remotos (origin e local). Dessa forma, eu poderia verificar facilmente se eles estão sincronizados ou não.

É possível fazer a comparação dessa forma?

solução!

Na verdade é usando uma sintaxe quase igual, porém indicando os remotos, por exemplo, digamos que você trabalha no mesmo projeto com outras pessoas e tenha um branch local chamado de develop e não fez um pull no momento, e então você quer verificar se tem diferença entre o seu branch develop local e o branch develop origin, ou seja o branch develop que está no GitHub, então você poderia utilizar o comando da seguinte forma:

git diff develop origin/develop

O primeiro develop é o seu local e o segundo que está com origin na frente (origin/develop) é o remoto, da mesma forma se você dois branches remotos, poderíamos fazer a comparação porém usando o origin (ou outro nome que você tenha dado) antes do nome do branch da seguinte forma:

git diff origin/develop origin/nova-funcionalidade

Espero ter esclarecido sua dúvida!

Legal, Jonilson! Funcionou.

Valeu!