Article image
Luís Almeida
Luís Almeida06/03/2023 13:16
Compartilhe

Git além do add/commit/pull/push Parte 2

  • #Git

Parte 1 (status, log, show, diff, checkout, reflog e aliases)

Nesta segunda parte irei abordar conceitos que modificam e interagem com o histórico:

Sugestão de prática:

Crie uma branch(git branch -m ‘<nomeDaBranch>’) e pratique ao longo do aprendizado para que o entendimento e fixação sejam os melhores possíveis.

Obs2: Em caso de dúvidas sobre os comandos, recomendo o site da Atlassian como referência: https://www.atlassian.com/git ou basta uma boa e velha consulta no google sobre o comando, ex: atlassian git <comando>.

Segue abaixo um resumo dos principais comandos:

GIT RESET <opção>

·       É um comando capaz de desfazer commits, revertendo assim, o estado da branch. Obs: altera o histórico de commits.

·       Git reset --hard <referência>: Descarta completamente alterações feitas após o commit especificado como referência (deve ser usado com cautela).

·       Git reset --soft <referência>: Retorna o estado da branch para a referência especificada, porém não descarta as alterações e sim as mantém na staging area (prontas para serem commitadas)

·       Git reset <referência>: Similar ao reset --soft, porém as alterações “resetadas” retornam à working área (ainda não adicionadas).

 

GIT REVERT <opção>

·       Comando que possui efeito parecido com o reset, reverte alterações, porém este as reverte ao adicionar um novo commit, cujas alterações “desfazem” o(s) commit(s) revertido(s).

·       Git revert <referência>: desfaz alterações do commit referência, incluindo um novo commit no histórico.

·       Git revert <referência1>.. <referência2>: Realiza o mesmo que o comando anterior, porém desfaz alterações de dois ou mais commits. (o primeiro valor não é inclusivo e o segundo é).

 

GIT REBASE <opção>

·       Git rebase <nomeDaBranch>: Irá atualizar a minha branch atual com novos commits da branch especificada, a partir do ponto em comum no histórico das duas. Útil para atualizar a branch e evitar commits de merge desnecessários.

·       Obs: Não deve ser utilizado uma vez que a base de código já foi compartilhada, pois altera o histórico de commits.

·       Git rebase -i <referência>^: Irá abrir um editor de texto listando commits a partir da referência especificada até o HEAD(último commit). Esse comando irá permitir diversas alterações como, editar commits e juntar dois ou mais commits em um só.

image

·       Para mais detalhes: https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase

 

GIT CHERRY-PICK

·       Git cherry-pick <referência>: Aplica as modificações de um commit em uma determinada branch, na forma de um novo commit.

image

 

·       Git cherry-pick <referência> --no-commit: a flag “--no-commit” faz com que as modificações sejam aplicadas, porém sem commita-las. Ficam na working área.

 

Com o conhecimento dos comandos detalhados nas partes 1 e 2, o desenvolvedor passa a ter um controle muito maior sobre o versionamento de código, podendo realizar consultas e alterações de estado de uma maneira flexível e inteligente.

Bons estudos! ✌

Compartilhe
Comentários (2)
Natana Costa
Natana Costa - 06/03/2023 21:10

Muito bom! Obrigada por compartilhar o conteúdo

Alciney Fonseca
Alciney Fonseca - 06/03/2023 19:03

Cara isso ajuda é muito. Obrigado.