‘git pull’ é mal!

Evite usar git pull, a menos que você seja o único proprietário e usuário do repositório.

A git pullfunciona fazendo a git fetchseguido por a git merge. Não há problema se sua filial local estiver sincronizada com a filial remota. Caso contrário, o git mergeresultará 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 fetchseguido por git rebase.

Digamos que você esteja sincronizando seu masterbranch. Faça um git fetche git rebase origin/master.

Isso encontrará o primeiro commit comum entre mastere 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/mastere 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 pulltanto 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.