git pull VS git buscar git rebase

Outra questão disse que o git pull é como um git fetch + git merge .

Mas qual é a diferença entre o git pull VS git fetch + git rebase ?

Deve ser bem óbvio pela sua pergunta que você está apenas perguntando sobre a diferença entre o git merge e git rebase .

Então, vamos supor que você esteja no caso comum – você fez algum trabalho em sua ramificação mestre e extraiu da origem, o que também fez algum trabalho. Após a busca, as coisas ficam assim:

 - o - o - o - H - A - B - C (master) \ P - Q - R (origin/master) 

Se você mesclar neste momento (o comportamento padrão de git pull), assumindo que não há conflitos, você acaba com isto:

 - o - o - o - H - A - B - C - X (master) \ / P - Q - R --- (origin/master) 

Se, por outro lado, você fizesse o rebase apropriado, acabaria com isso:

 - o - o - o - H - P - Q - R - A' - B' - C' (master) | (origin/master) 

O conteúdo da sua tree de trabalho deve terminar o mesmo em ambos os casos; você acabou de criar uma história diferente que leva a isso . O rebase reescreve seu histórico, fazendo com que pareça que você tenha se comprometido sobre o novo branch master de origem ( R ), ao invés de onde você originalmente se comprometeu ( H ). Você nunca deve usar a abordagem rebase se outra pessoa já tiver saído de sua ramificação mestre.

Finalmente, note que você pode realmente configurar o git pull para uma determinada ramificação para usar rebase ao invés de mesclar definindo a branch..rebase parâmetro de configuração branch..rebase para true. Você também pode fazer isso por um único pull usando git pull --rebase .

Em resposta à sua primeira declaração, ‘git pull’ é como uma busca do git + git merge. ‘,

“Em seu modo padrão, git pull é uma abreviação para git fetch seguida por git merge FETCH_HEAD” Mais precisamente, git pull executa git fetch com os parâmetros fornecidos e chama git merge para mesclar os headers recuperados na ramificação atual ”

(Ref: https://git-scm.com/docs/git-pull )

Para sua segunda instrução / pergunta: ‘Mas qual é a diferença entre git pull VS git fetch + git rebase? Novamente, da mesma fonte:

“Com o –rebase, ele executa o git rebase em vez do git merge.”

Agora, se você quiser perguntar a diferença entre buscar e mesclar, isso é respondido aqui também: https://git-scm.com/book/en/v2/Git-Branching-Rebasing (a diferença entre alterar o histórico de versões está gravado e que não)