Tenho uma máquina A com o projeto, e a máquina B tbm.
Mas alterei uns arquivos na máquina A mas não commitei, fiz um pull na máquina B, só que sem esse arquivo alterado, óbvio, alterei uns arquivos e fiz um push, mas quando voltei a máquina A para adicionar o arquivo e dar um push, ocorre o seguinte.
Antes você precisa fazer um pull para deixar seu clone local up-to-date, para depois fazer um push para o remoto.
G
garcia-jj
Desculpe o flood
O Lucas Cavalcanti sempre me sugeriu usar um branch para quando trabalhamos com um fork, e deixar sempre o master para o que está no projeto original. Sempre que você implementar alguma coisa, faça um branch e trabalhe nele.
A vantagem disso é evitar conflitos e facilitar o trabalho de merge no projeto original.
J
j0nny
Desculpe o flood
O Lucas Cavalcanti sempre me sugeriu usar um branch para quando trabalhamos com um fork, e deixar sempre o master para o que está no projeto original. Sempre que você implementar alguma coisa, faça um branch e trabalhe nele.
A vantagem disso é evitar conflitos e facilitar o trabalho de merge no projeto original.
Sim, vacilei nisso, tbm sou novo com o Git e me perco as vezes, principalmente com merges :lol:
G
garcia-jj
Quando você usa o pull ele faz o merge automagico. Se você usar o fetch, aí você precisa fazer o merge manualmente. Algumas vezes (raramente acontece) você precisa fazer o merge manual mesmo no pull, quando há conflitos. Mas aí é igual ao SVN e CVS: basta resolver os conflitos e fazer um novo commit.
O github tem um guia bem legal com essas pequenas coisas: help.github.com.
Abraços
J
j0nny
garcia-jj:
Quando você usa o pull ele faz o merge automagico. Se você usar o fetch, aí você precisa fazer o merge manualmente. Algumas vezes (raramente acontece) você precisa fazer o merge manual mesmo no pull, quando há conflitos. Mas aí é igual ao SVN e CVS: basta resolver os conflitos e fazer um novo commit.
O github tem um guia bem legal com essas pequenas coisas: help.github.com.
Abraços
Acabei dando um ‘git push -f’ na máquina B, e vamos chegar em casa para tentar dar um pull :lol:
Qual seria o cenário ideal agora?
Tenho na máquina B algumas alterações já no repositório, e na máquina A tbm, mas apenas local. Como eu devo proceder?
G
garcia-jj
Antes de qualquer push eu faço sempre um pull, assim ele pega as ultimas alterações no remoto (eu só nunca uso o -f a menos que seja alguma condição muito especial). Somente depois disso eu faço um push para o remoto.
J
j0nny
Mas foi o que tentei fazer, com arquivos não ‘pusheados’, fui dar um pull para pegar as alterações para só então dar um push.
J
j0nny
Resultado, cheguei em casa e fui dar um pull, ele reclamou de dois conflitos, eliminei esse arquivos pq tenho esses atualizados no repo, dei um push denovo e ele não trouxe todos arquivos do repositório, o que aconteceu agora?
G
garcia-jj
Qual a mensagem que ele mostrou? Se for algo com “fast forward”, você precisa pegar as últimas atualizações do remoto via pull.
Se você faz um pull e depois um push, não tem como dar erro. Pode acontecer um erro no merge automatico do pull, mas no push é difícil acontecer.
pull => do remoto para o local, mesma coisa que o update do SVN
push => do local para o remoto
J
j0nny
garcia-jj:
Qual a mensagem que ele mostrou? Se for algo com “fast forward”, você precisa pegar as últimas atualizações do remoto via pull.
Se você faz um pull e depois um push, não tem como dar erro. Pode acontecer um erro no merge automatico do pull, mas no push é difícil acontecer.
pull => do remoto para o local, mesma coisa que o update do SVN
push => do local para o remoto
Não estou na máquina onde ocorreu o problema, mas creio que foi essa msg sim.
Mas simplesmente fui dar um pull, então ele deveria trazer tudo que está no repositório certo?
Mas trouxe apenas alguns arquivos.
G
garcia-jj
Deu algum erro ao fazer o “merge automatico” do pull? Caso sim você tem que resolver os conflitos, fazer um commit e aí sim fazer um push.
J
j0nny
Sim ocorreu isso sim, e fiz como vc falou, mas do mesmo jeito os arquivos não vieram.