logo

Git Rebase

Rebasing é um processo para reaplicar commits além de outra viagem base. É usado para aplicar uma sequência de commits de ramificações distintas em um commit final. É uma alternativa ao comando git merge. É um processo linear de fusão.

No Git, o termo rebase é referido como o processo de mover ou combinar uma sequência de commits para um novo commit base. O rebase é muito benéfico e visualiza o processo no ambiente de um fluxo de trabalho de ramificação de recursos.

É bom rebasear seu branch antes de mesclá-lo.

Git Rebase

Geralmente, é uma alternativa ao comando git merge. A mesclagem é sempre um registro de alteração progressiva. Comparativamente, rebase é uma ferramenta atraente para reescrever o histórico no git. Ele mescla os diferentes commits um por um.

Suponha que você tenha feito três commits em seu branch master e três em seu outro branch chamado test. Se você mesclar isso, todos os commits serão mesclados de uma vez. Mas se você fizer o rebase, ele será mesclado de maneira linear. Considere a imagem abaixo:

Git Rebase

A imagem acima descreve como funciona o git rebase. Os três commits do branch master são mesclados linearmente com os commits do branch test.

A fusão é a maneira mais direta de integrar as filiais. Ele executa uma fusão de três vias entre os dois commits de branch mais recentes.

Como rebase

Quando você fez alguns commits em um branch de recurso (ramificação de teste) e alguns no branch master. Você pode rebasear qualquer uma dessas ramificações. Use o comando git log para rastrear as alterações (histórico de commits). Faça check-out no branch desejado que você deseja rebase. Agora execute o comando rebase da seguinte forma:

Sintaxe:

 $git rebase 

Se houver alguns conflitos na ramificação, resolva-os e execute os comandos abaixo para continuar as alterações:

 $ git status 

É usado para verificar o status,

 $git rebase --continue 

O comando acima é usado para continuar com as alterações feitas. Se quiser pular a alteração, você pode pular da seguinte maneira:

sono javascript
 $ git rebase --skip 

Quando o rebase for concluído. Envie o repositório para a origem. Considere o exemplo abaixo para entender o comando git merge.

Suponha que você tenha uma filial, digamos teste2 no qual você está trabalhando. Você está agora no branch test2 e fez algumas alterações no arquivo do projeto novoarquivo1.txt .

Adicione este arquivo ao repositório:

 $ git add newfile1.txt 

Agora, confirme as alterações. Use o comando abaixo:

 $ git commit -m 'new commit for test2 branch.' 

A saída será semelhante a:

 [test2 a835504] new commitfor test2 branch 1 file changed, 1 insertion(+) 

Mude o branch para master:

 $ git checkout master 

Saída:

 Switched to branch 'master.' Your branch is up to date with 'origin/master.' 

Agora você está no branch master. Eu adicionei as alterações ao meu arquivo, diz novo arquivo.txt . O comando abaixo é usado para adicionar o arquivo no repositório.

 $ git add newfile.txt 

Agora envie o arquivo para alterações:

 $ git commit -m ' new commit made on the master branch.' 

Saída:

lobo ou raposa
 [master 7fe5e7a] new commit made on master 1 file changed, 1 insertion(+) HiMaNshU@HiMaNshU-PC MINGW64 ~/Desktop/GitExample2 (master) 

Para verificar o histórico de log, execute o comando abaixo.

 $ git log --oneline 

Saída:

Git Rebase

Como podemos ver no histórico do log, há um novo commit no branch master. Se eu quiser rebase meu branch test2, o que devo fazer? Veja o cenário de ramificação de rebase abaixo:

Filial de Rebase

Se tivermos muitos commits de ramos distintos e quisermos mesclá-los em um. Para fazer isso, temos duas opções: podemos mesclá-lo ou rebaseá-lo. É bom rebase seu branch.

A partir do exemplo acima, nos comprometemos com o branch master e queremos rebaseá-lo no branch test2. Vamos ver os comandos abaixo:

 $ git checkout test2 

Este comando irá mudar você para o branch test2 do master.

Saída:

 Switched to branch 'test2.' 

Agora você está no branch test2. Portanto, você pode rebasear a ramificação test2 com a ramificação master. Veja o comando abaixo:

 $ git rebase master 

Este comando irá rebasear o branch test2 e será mostrado como Aplicando: novo commit no branch test2 . Considere a saída abaixo:

Saída:

Git Rebase

Rebase interativo do Git

Git facilita com Rebase Interativo; é uma ferramenta potente que permite diversas operações como editar, reescrever, reordenar, e mais sobre commits existentes. O Rebase interativo só pode ser operado na ramificação atualmente em check-out. Portanto, defina sua ramificação HEAD local na barra lateral.

O rebase interativo do Git pode ser invocado com o comando rebase, basta digitar -eu junto com o comando rebase. Aqui ' eu ' significa interativo. A sintaxe deste comando é fornecida abaixo:

Sintaxe:

 $ git rebase -i 

Ele listará todas as opções interativas disponíveis.

Saída:

Git Rebase

Após a saída fornecida, será aberto um editor com as opções disponíveis. Considere a saída abaixo:

Saída:

Git Rebase

Quando executamos o comando git interativo rebase, ele abrirá seu editor de texto padrão com a saída acima.

o que é jquery

As opções que ele contém estão listadas abaixo:

  • Escolha
  • Reformular
  • Editar
  • Abóbora
  • Correção
  • Executivo
  • Quebrar
  • Derrubar
  • Rótulo
  • Reiniciar
  • Mesclar

As opções acima executam suas tarefas específicas com git-rebase. Vamos entender resumidamente cada uma dessas opções.

Escolha (-p):

Escolha aqui que o commit está incluído. A ordem dos commits depende da ordem dos comandos pick durante o rebase. Se você não quiser adicionar um commit, você terá que deletar a linha inteira.

Reformulação (-r):

A reformulação é bastante semelhante ao comando pick. A opção reword pausou o processo de rebase e oferece uma chance de alterar a mensagem de commit. Isso não afeta nenhuma alteração feita pelo commit.

Editar% s):

A opção de edição permite alterar o commit. A alteração significa que os commits podem ser adicionados ou alterados totalmente. Também podemos fazer commits adicionais antes do comando rebase continue. Isso nos permite dividir um commit grande em um commit menor; além disso, podemos remover alterações erradas feitas em um commit.

Abóbora (-s):

A opção squash permite combinar dois ou mais commits em um único commit. Também nos permite escrever uma nova mensagem de commit para descrever as alterações.

Correção (-f):

É bastante semelhante ao comando squash. Descartou a mensagem do commit a ser mesclado. A mensagem de commit mais antiga é usada para descrever ambas as alterações.

Executivo (-x):

A opção exec permite executar comandos shell arbitrários em um commit.

Quebra (-b):

A opção break interrompe o rebase na posição correta. Ele continuará rebaseando mais tarde com ' git rebase --continuar ' comando.

Soltar (-d):

A opção drop é usada para remover o commit.

Rótulo (-l):

A opção label é usada para marcar a posição atual da cabeça com um nome.

Redefinir (-t):

A opção de redefinição é usada para redefinir o cabeçote para uma etiqueta.

sobrescrito no ilustrador

GitMerge x Rebase

É uma pergunta intrigante mais comum para o usuário git quando usar o comando merge e quando usar o rebase. Ambos os comandos são semelhantes e são usados ​​para mesclar os commits feitos pelas diferentes ramificações de um repositório.

O rebase não é recomendado em uma ramificação compartilhada porque o processo de rebase criará repositórios inconsistentes. Para indivíduos, o rebase pode ser mais útil do que a fusão. Se quiser ver o histórico completo, você deve usar a mesclagem. Merge rastreia todo o histórico de commits, enquanto rebase reescreve um novo.

Comandos Git rebase ditos como uma alternativa ao git merge. No entanto, eles têm algumas diferenças importantes:

Mesclar Git Git Rebase
A fusão cria um commit final na fusão. O rebase do Git não cria nenhum commit no rebase.
Ele mescla todos os commits como um único commit. Ele cria um controle linear de commits.
Ele cria um histórico gráfico que pode ser um pouco complexo de entender. Ele cria uma história linear que pode ser facilmente compreendida.
É seguro mesclar duas ramificações. Git 'rebase' trata da operação severa.
A fusão pode ser realizada em agências públicas e privadas. É uma escolha errada usar rebase em agências públicas.
A mesclagem integra o conteúdo do branch feature com o branch master. Portanto, o branch master é alterado e o histórico do branch de recursos permanece consistente. O rebase do branch master pode afetar o branch do recurso.
A fusão preserva a história. Rebase reescreve a história.
A mesclagem do Git apresenta todos os conflitos de uma vez. O rebase do Git apresenta conflitos um por um.