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:
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! ✌