The Ultimate Guide to Git Merge and Git Rebase

Welcome to our ultimate guide to the git merge and git rebase. Este tutorial irá ensinar-lhe tudo o que precisa de saber sobre a combinação de vários ramos com o Git.

git Merge

o comando git merge irá juntar todas as alterações que foram feitas à base de código numa ramificação separada para a sua ramificação actual como uma nova persistência.,

A sintaxe do comando é a seguinte:

git merge BRANCH-NAME

Por exemplo, se você está trabalhando atualmente em um ramo chamado dev e gostaria de mesclar quaisquer novas alterações que foram feitas em um ramo chamado new-features, você deve emitir o seguinte comando:

git merge new-features

Nota: Se houver quaisquer alterações não confirmadas sobre o seu ramo, o Git não vai permitir que você mesclar até que todas as alterações no seu ramo de ter sido cometido., Para lidar com essas alterações, você pode:

Criar um novo ramo e confirmar as alterações

git checkout -b new-branch-namegit add .git commit -m "<your commit message>"

Stash-los

git stash # add them to the stashgit merge new-features # do your mergegit stash pop # get the changes back into your working tree

Abandonar todas as alterações

git reset --hard # removes all pending changes

Git Rebase

A alteração da base de um branch no Git é uma maneira de mover a totalidade de um ramo para outro ponto na árvore. O exemplo mais simples é mover um ramo mais acima na árvore., Dizer que nós temos uma filial que divergiu do branch master no ponto A:

 /o-----o---o--o-----o--------- branch--o-o--A--o---o---o---o----o--o-o-o--- master

Quando você realocar você pode movê-lo assim:

 /o-----o---o--o-----o------ branch--o-o--A--o---o---o---o----o--o-o-o master

Para alterar a base, certifique-se de que você tem todos os commits que você deseja no rebase no seu branch master. Confira o ramo em que deseja ajustar a base e digitar git rebase master (onde o comando principal é o ramo em que deseja ajustar a base)., que, por exemplo, um ramo que foi baseado em outro ramo (vamos chamá-lo de recurso) é realocado no mestre:

 /---o-o branch /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master

Depois git rebase master branch ou git rebase master quando você tiver verificado fora do seu ramo, você terá:

 /---o-o-o-o---o--o------ feature----o--o-o-A----o---o--o-o-o--o--o- master \---o-o branch

Git rebase interativo para console

Para usar o git rebase no console com uma lista de commits que você pode escolher, editar ou queda no rebase:

  • Enter git rebase -i HEAD~5 com o último número a ser qualquer número de compromete-se a partir do mais recente para trás você deseja revisar.,In vim, press esc, then i to start editing the test.
  • no lado esquerdo você pode sobrepor o pick com um dos comandos abaixo. Se você quer esmagar um commit em um anterior e descartar a mensagem de commit, digite f no lugar de pick de o cometer.
  • grava e sai do seu editor de texto.
  • Quando o rebase é parado, faça os ajustes necessários, em seguida, use git rebase --continue até o rebase ser bem sucedido.,
  • Se ele reiniciar com sucesso, então você precisa forçar as suas alterações com git push -f para adicionar a versão rebaseada ao seu repositório remoto.
  • Se houver um conflito de junção, há uma série de maneiras de corrigir isso, incluindo seguindo as sugestões neste guia. Uma maneira é abrir os arquivos em um editor de texto e excluir as partes do código que você não quer. Em seguida, use git add <file name> seguido porgit rebase --continue., Você pode saltar sobre o commit em conflito, inserindo git rebase --skip, parar de reajustar executando git rebase --abort na sua consola.

Merge Conflicts

merge conflict is when you make commits on separate branches that alter the same line in conflicting ways.,qual a versão do ficheiro para se manter em uma mensagem de erro semelhante à seguinte:

CONFLICT (content): Merge conflict in resumé.txt Automatic merge failed; fix conflicts and then commit the result.

Se você olhar para o resumé.txt arquivo no seu editor de código, você pode ver onde o conflito ocorreu:

<<<<<<< HEADAddress: 808 South Street=======Address: 505 North Street>>>>>>> updated_address

Git adicionado algumas linhas adicionais para o arquivo:

  • <<<<<<< HEAD
  • =======
  • >>>>>>> updated_address

Git Merge vs Git Rebase

Os git merge e git rebase comandos são muito úteis, e só não é melhor que o outro., No entanto, existem algumas diferenças muito importantes entre os dois comandos que você e sua equipe devem levar em consideração.

sempre que git merge é executado, é criado um commit de junção extra. Sempre que estiver a trabalhar no seu repositório local, ter demasiados commits de junção pode fazer com que o histórico de commit pareça confuso. Uma maneira de evitar o commit merge é usar git rebase em vez disso.

git rebase é uma característica muito poderosa. Dito isto, também é arriscado se não for utilizado da forma correcta., git rebase altera o histórico de commit, por isso use-o com cuidado. Se o ajuste for feito no repositório remoto, então ele pode criar um monte de problemas quando outros desenvolvedores tentam puxar as últimas alterações de código do repositório remoto. Lembre-se de executar apenas git rebase num repositório local.

é tudo o que você precisa saber para se fundir e refazer com o melhor deles.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *