Article image
Luís Almeida
Luís Almeida03/03/2023 09:37
Compartilhe

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

  • #Git

O Git é um sistema de controle de versão popular e amplamente utilizado para o desenvolvimento de software. Ele ajuda os desenvolvedores a acompanhar diferentes versões do seu código e colaborar com outros no mesmo projeto. O Git permite colaboração simultânea, o que significa que vários desenvolvedores podem trabalhar em um projeto de forma independente, e em seguida integrar essas partes com segurança. Oferece a capacidade de reverter para versões anteriores do código em caso de bugs ou outros problemas.

Durante minhas atuações, conforme a necessidade surgia, fui descobrindo novos comandos e ferramentas muito úteis, que aceleram meu fluxo de trabalho e me dão poder sobre meu código. Considero um conhecimento importante e que faz toda a diferença no dia a dia de um desenvolvedor.

Obs: Por conta de o conteúdo ter se tornado mais extenso do que eu imaginava inicialmente, decidi dividi-lo em algumas partes.

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>.

Nessa primeira parte irei explorar os comandos de busca, log e navegação entre branches.

Segue abaixo um resumo dos principais comandos:

GIT STATUS

·       Comando básico para entender o estado atual da branch. (Modificações feitas, arquivos e pastas novas ou deletadas e modificações adicionadas para commit)

 

GIT LOG <opção>

  • --oneline

Histórico mais sucinto de commits.

  • --stat

Detalha quais arquivos foram modificados e quantas linhas foram alteradas.

  • -p ou –patch

Detalha as alterações no código em cada commit.

  • --author="nomeDoAutor"

Mostra apenas commits do autor.

  • --grep="descrição do commit"

Filtra e mostra apenas commits cuja mensagem contém determinada descrição.

  • -- file1.js file2.java

Filtra e mostra apenas commits onde os arquivos especificados foram alterados.

  • -S"Hello, World!"

Filtra e mostra apenas commits que contém “Hello, World!” como alteração.

 

GIT SHOW e DIFF

·       Git show <referência>

Mostra as mudanças da referência em comparação com o seu commit anterior.

·       Git diff

Mostra as diferenças entre as modificações atuais e o seu último commit (HEAD).

·       Git diff <ref1>

Mostra as diferenças entre as modificações a <ref1> e o seu último commit (HEAD)

·       Git diff <ref1> <ref2>

Mostra as modificações feitas na <ref1> em relação a <ref2>

 

GIT CHECKOUT

·       Git checkout <nomeDaBranch>

Muda a branch de trabalho atual.

·       Git checkout -b <nomeDaNovaBranch>

Cria uma nova branch e muda para ela.

 

GIT REFLOG

Ao executar o comando o git listará os últimos comandos utilizados pelo usuário. É muito útil para reverter o git para um estado anterior a alguma operação feita pelo usuário.

Exemplo muito comum: O usuário executa um git reset --hard e remove alterações importantes. Para resolver ele pode dar um git reflog, copiar o ‘hash’ da linha anterior a que descreve a operação de reset --hard, sair da tela de reflog (‘q’) e escrever git reset --hard ‘hash’. Dessa maneira o git voltará a refletir exatamente o que era antes do commit indesejado.

É um comando poderoso e que assim como o reset, deve ser evitado e usado com responsabilidade.

GIT ALIASES

·       Por fim, trago essa dica que não é um comando em si e sim uma funcionalidade que o git permite. Com ela você pode dar “apelidos” aos seus comandos mais utilizados. Para incluir novos aliases (estando no seu repositório git), digite “nano ~/.gitconfig”, edite o arquivo e por fim pressione ctrl+x e enter para salvar. Exemplo do meu gitconfig:

image


Git pode ser um pouco difícil de entender no início, mas entender o seu objetivo e ir praticando ajuda muito a compreender melhor a ferramenta.

Na parte 2 irei abordar conceitos que modificam e interagem com o histórico, como o reset, revert, rebase etc.

Edit: Parte 2

Sigam firmes e bons estudos! ✌

Compartilhe
Comentários (0)