Evite usar git pull
, a menos que você seja o único proprietário e usuário do repositório.
A git pull
funciona fazendo a git fetch
seguido por a git merge
. Não há problema se sua filial local estiver sincronizada com a filial remota. Caso contrário, o git merge
resultará em um gráfico de confirmação que se parece com um espaguete porque fará uma fusão de seu branch local com o remoto.
Uma abordagem melhor é usar git fetch
seguido por git rebase
.
Digamos que você esteja sincronizando seu master
branch. Faça um git fetch
e git rebase origin/master
.
Isso encontrará o primeiro commit comum entre master
e origin/master
, mover para um espaço temporário tudo em seu branch local que vier depois disso, avançar para o último commit origin/master
e então aplicar cada um dos commits que foram colocados de lado em cima dele, um por um, parando se forem encontrados conflitos para que você possa corrigi-los antes de continuar com o rebase
.
Está confuso? Pode ser no começo, mas assim que você pegar o jeito, vai se perguntar por que está usando git pull
tanto tempo.
Mais informações sobre stackoverflow .
Atualização:
conforme apontado por@jwebcat , há casos (especificamente ao rebasing um commit de mesclagem) em que essa abordagem pode ser um tiro no pé. Por favor, leia seu protip para mais informações.