Git Rebase e Branch comutação

Rebase

Rebase é o processo de alterar o histórico de commits de um branch aplicando commits de outro branch. Em vez de usar merge para combinar alterações, rebase permite que você faça insert novos commits no histórico de commits do branch atual sem criar commits de mesclagem.

Por exemplo, digamos que você tenha duas ramificações: feature-branch e main. Você está trabalhando feature-branch e deseja aplicar os últimos commits de main seu branch atual. Você pode usar o rebase para conseguir isso:

git checkout feature-branch  
git rebase main  

Quando você executa este comando, o Git pega os commits main e os aplica em feature-branch. Isso significa que todos os commits de feature-branch aparecerão após os commits de main. O resultado é um histórico de commits mais limpo e legível no feature-branch.

No entanto, ao usar o rebase, é importante observar que a alteração do histórico de confirmação pode afetar as ramificações compartilhadas publicamente. Portanto, se você já enviou commits de seu branch atual para um repositório remoto, geralmente é aconselhável não usar rebase nesse branch para evitar conflitos e um histórico de commits confuso.

 

Branch Trocando

A troca de ramificação no Git refere-se ao processo de mover de uma ramificação para outra. Quando você troca de ramificação, o Git move o ponteiro HEAD para a nova ramificação, permitindo que você trabalhe nessa ramificação e faça alterações sem afetar outras ramificações.

Por exemplo, digamos que você tenha branches feature-branch e main. Para mudar para feature-branch, você usaria o seguinte comando:

git checkout feature-branch

Depois de alternar as ramificações, você pode fazer alterações no diretório de trabalho. Todos os comandos commit, add e checkout serão aplicados ao branch atual.

Por exemplo, se você adicionar um novo arquivo e confirmá-lo em feature-branch, somente essa ramificação conterá o commit, enquanto main permanece inalterado. Isso permite que você desenvolva recursos separados, corrija bugs ou trabalhe em diferentes versões do código de forma independente. Você pode alternar entre as ramificações sempre que necessário para trabalhar em cada ramificação separadamente.