freeCodeCamp/guide/portuguese/miscellaneous/how-to-use-git-rebase/index.md

3.5 KiB

title localeTitle
How to Use Git Rebase Como usar o Git Rebase

Você foi encaminhado para esta página para receber o seu PR? Role para a direita para Git Rebase na FCC então!

git rebase é uma ferramenta extremamente útil que tem tudo a ver com a reescrita do git history, embora seja mais comumente usado para esmagar vários commits em um. Embora útil neste cenário, esta não é a única função que o comando git rebase pode executar. Na verdade, ele se mostra muito mais útil quando usado para a função pretendida que seu nome sugere: essencialmente, rebase uma ramificação. Deixe-me explicar o que quero dizer com isso.

Vamos dizer que você tem um repositório como este:

                                                  --- Commit 5 ----------- auth branch 
                                                / 
                                               --- Commit 4 -------------- dev branch 
                                             / 
 --- Commit 1 ---- Commit 2 ---- Commit 3 -------------------------------- master branch 

Se você quisesse mesclar a ramificação auth com a ramificação dev , o git lançaria um erro em você porque sua ramificação de auth está desatualizada: ela não é responsável pela confirmação 4. Você precisará trazer sua ramificação para up-of-date. Até a presente data.

O Git fornece dois métodos para isso: o comando merge e o comando rebase . Para uma exploração do comando merge , visite o artigo wiki relevante: Git Merge

Vamos executar o rebase agora:

$ git checkout auth 
 $ git rebase dev 

O repo agora ficará assim:

                                                                 --- Commit 5 --- auth branch 
                                                               / 
                                               --- Commit 4 --------------------- dev branch 
                                             / 
 --- Commit 1 ---- Commit 2 ---- Commit 3 --------------------------------------- master branch 

Você vê o que aconteceu? Git essencialmente salvou os commits na ramificação auth , removeu-os e depois os criou novamente com os mesmos commits após os commits no branch dev . Isso significa que o Commit 4 só existe no ramo dev e não no branch auth ! E isso é realmente tudo que existe para isso! Isso pode parecer um pouco confuso no começo, mas tente entender o diagrama. Esta é uma ferramenta extremamente útil.

Git-Rebase na FCC

Evitando conflitos de mesclagem

Se você contribuir para a base de código da FCC, ou estiver planejando fazer isso, sempre execute este comando antes de fazer qualquer alteração nos arquivos locais e enviá-los:

git pull --rebase upstream staging

Se você não tiver o upstream configurado, execute este comando antes de executar o comando acima (o git lançará um erro porque não sabe o que é o upstream): git remote add upstream https://github.com/freecodecamp/freecodecamp.git

Isto irá puxar as últimas mudanças do ramo de preparo da FCC e rebase-las com o ramo de teste do seu garfo para que você não tenha nenhum conflito ao abrir o PR :slight_smile:

Squashing

Se você tem vários commits que você quer esmagar em um, então siga as instruções para Squashing .