3.5 KiB
title, localeTitle
| 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 
Squashing
Se você tem vários commits que você quer esmagar em um, então siga as instruções para Squashing .