Git

Como fazer o rebase do Git

Como fazer o rebase do Git
git rebase é um utilitário de mesclagem, assim como git merge. Mas a forma como eles funcionam é diferente.

Neste artigo, falarei sobre como o rebase Git funciona, as diferenças entre o rebase Git e o Git merge e como trabalhar com o rebase Git. Então vamos começar.

Git Rebase:

Digamos que você tenha um repositório Git com os commits UMA, B, C no mestre galho. Então, você criou um novo ramo algum ramo e adicionou 2 novos commits D e E para o algum ramo galho.

Fig 1: histórico de commit inicial.

Agora, digamos, você se esqueceu de adicionar algo no mestre galho. Então, você volta para o mestre branch e adicionar um novo commit G para o mestre galho. Seu histórico do git deve ser o seguinte.

Fig 2: histórico de commit após adicionar commit G no branch master.

Tudo parece bem. Agora, se você quiser todas as mudanças que fez no algum ramo ramo para estar no mestre ramo, você pode mesclar o algum ramo ramo para o mestre galho. Isso é o que git fundir Faz.

E se você quiser o commit G estar disponível no algum ramo galho? Bem, você pode usar git rebase para isso.

No histórico de commits na fig 2, você pode ver que o branch algum ramo começa a partir do commit C. Se você fizer um rebase git em algum ramo, então começaria a partir do commit G como mostrado na fig 3 abaixo. Observe que o conteúdo do commit D e E irá mudar também após a operação de rebase. Os commits D e E irá incluir as mudanças no commit G. É por isso que eu adicionei * símbolo antes dos commits D e E.

Se você quiser saber como o histórico de commits ficaria se eu o mesclasse, dê uma olhada na fig 4. Eu o incluí apenas para que você possa compará-lo com o git rebase.

Fig 4: histórico de commit se git merge foi usado.

Agora que você sabe o que é git rebase, a diferença entre git rebase e git merge e por que o git rebase é usado, mostrarei como usá-lo na próxima seção deste artigo abaixo.

Fluxo de trabalho do Git Rebase:

Nesta seção, vou criar um novo repositório git no meu computador local e mostrar como o git rebase funciona. Eu recomendo que você tenha um bom entendimento de git rebase antes de aplicá-lo em seu projeto.

Primeiro, crie um novo repositório Git rebase-demo / no seu computador da seguinte forma:

$ git init rebase-demo

Agora, navegue até o rebase-demo / diretório da seguinte forma:

$ cd rebase-demo /

Agora, crie um novo arquivo teste.TXT do seguinte modo:

$ echo "A"> teste.TXT

O teste.o arquivo txt contém apenas uma linha UMA. Digamos que este é o código do seu projeto inicial.

Agora, comprometa as alterações da seguinte maneira:

$ git add .
$ git commit -m 'A'

Agora, adicione outra linha B para o teste.TXT arquivo como mostrado na imagem abaixo.

Agora, comprometa as alterações da seguinte maneira:

$ git add .
$ git commit -m 'B'

Agora, vamos adicionar outra linha C ao teste.TXT Arquivo.

Além disso, comprometa as alterações da seguinte forma:

$ git add .
$ git commit -m 'C'

Agora, o histórico de commit do branch master deve ser o seguinte:

$ git log --oneline

Agora, digamos, você tem algumas novas ideias que deseja experimentar. Então, vamos criar e fazer checkout em um novo branch novo recurso do seguinte modo:

$ git checkout -b new-feature

Agora, adicione sua nova ideia (a linha D digamos) para o teste.TXT Arquivo.

Agora, comprometa as alterações da seguinte maneira:

$ git add .
$ git commit -m 'D'

Agora, adicione a linha E ao teste.TXT Arquivo.

Faça o commit das alterações da seguinte forma:

$ git add .
$ git commit -m 'E'

Agora, o histórico de commits do novo recurso branch deve ser o seguinte:

$ git log --oneline

Veja como os commits estão na ordem A < B < C < D < E?

Agora, você lembra que se esqueceu de adicionar algo ao mestre ramo que você também queria estar no novo recurso galho! Então, dê uma olhada no mestre galho.

Eu adicionei uma nova linha no final do teste.TXT arquivo como você pode ver.

Agora, comprometa as alterações da seguinte maneira:

$ git add .
$ git commit -m 'G'

Agora, o histórico de commits do mestre ramo deve ser parecido com este.

UMA < B < C < G

Agora, para rebase os commits do mestre ramo para o novo recurso filial, primeiro check-out para o novo recurso galho.

$ git checkout new-feature

Agora, faça um rebase git do mestre ramificar da seguinte forma:

$ git rebase master

Algum conflito de fusão! Vamos consertar isso.

Bem, as mudanças que fiz no commit G e D estão em conflito um com o outro. Eu quero manter esses dois.

Depois de corrigir o conflito de mesclagem, o teste.TXT arquivo deve ser o seguinte:

Agora, adicione as alterações à área de teste da seguinte forma:

$ git add .

Agora, continue o rebase operando da seguinte maneira:

$ git rebase --continue

Outro conflito de fusão! Bem, isso pode acontecer. Rebase muda o histórico de commit do git. Então, coisas como essas são esperadas.

Parece que o processo de mesclagem falhou devido a algumas linhas vazias. Vamos consertar isso.

Depois de corrigir o conflito de mesclagem, o teste.TXT o arquivo deve ser o seguinte.

Agora, adicione as alterações à área de teste da seguinte forma:

$ git add .

Agora, continue a operação de rebase da seguinte maneira:

$ git rebase --continue

O rebase Git está completo.

Como você pode ver, o histórico de commit do branch de novos recursos é atualizado. Agora, o histórico de commits é o seguinte:

UMA < B < C < G < D < E

Como esperado.

O final teste.TXT o arquivo deve ser o seguinte.

Git rebase é uma ferramenta poderosa. Mas você nunca deve usá-lo em repositórios Git compartilhados. Use-o apenas nos repositórios Git que você trabalha apenas. Caso contrário, você enfrentará muitos problemas ao longo do caminho.

Então, é assim que você usa git rebase. Obrigado por ler este artigo.

Mecanismos de jogos gratuitos e de código aberto para o desenvolvimento de jogos Linux
Este artigo cobrirá uma lista de mecanismos de jogo gratuitos e de código aberto que podem ser usados ​​para desenvolver jogos 2D e 3D no Linux. Exist...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider é a décima segunda adição à série Tomb Raider - uma franquia de jogos de ação e aventura criada pela Eidos Montreal. O jogo ...
Como aumentar o FPS no Linux?
FPS significa Quadros por segundo. A tarefa do FPS é medir a taxa de quadros em reproduções de vídeo ou desempenho de jogos. Em palavras simples, o nú...