Executando verificação de segurança...
1
tsemh
4 min de leitura ·

Git: Comandos Úteis e Essenciais

O Git é um sistema de controle de versão amplamente utilizado por desenvolvedores para rastrear e gerenciar alterações em projetos de software. Com sua capacidade de controlar diferentes versões do código, colaborar com outros desenvolvedores e gerenciar branches, o Git se tornou uma ferramenta essencial no desenvolvimento de software. Neste artigo, exploraremos algumas práticas e comandos fundamentais do Git que ajudarão os programadores Java a maximizar sua eficiência e produtividade no controle de versão de seus projetos.

Ao trabalhar com Git, é comum haver arquivos ou diretórios que você deseja que sejam ignorados pelo sistema de controle de versão. Para isso, podemos criar um arquivo chamado .gitignore, que lista os arquivos e padrões a serem ignorados. Esses arquivos podem incluir arquivos de compilação, arquivos de configuração local e arquivos temporários, entre outros.

Ao clonar um repositório Git, geralmente obtemos a versão mais recente do código na branch padrão (geralmente a branch "master" ou "main"). No entanto, é possível clonar um repositório a partir de uma branch específica usando o seguinte comando:

-> git clone -b new_feature <repositório>

Às vezes, é necessário trazer um commit específico de uma branch para a branch atual em que você está trabalhando. Isso pode ser feito usando o comando git cherry-pick seguido pelo hash do commit desejado:

-> git cherry-pick <hash do commit>

O Git oferece várias maneiras de visualizar informações sobre os commits realizados. Alguns comandos úteis são:

-> git log: mostra todos os commits em ordem cronológica.
-> git log --graph: exibe uma representação gráfica dos commits e suas ramificações.
-> git log -p: mostra os commits com as diferenças introduzidas em cada um.
-> git log --oneline: exibe uma lista resumida dos commits em uma única linha.
-> git log -n <número>: mostra um número específico de commits.

git log --pretty=\"format:%h %s\": exibe informações formatadas personalizadas para cada commit.

Para comparar as diferenças entre dois commits ou visualizar todas as alterações que ainda não foram commitadas ou adicionadas, podemos usar os seguintes comandos:

-> git diff <hash commit 1>..<hash commit 2>: mostra as diferenças entre dois commits.

-> git diff: exibe todas as alterações não commitadas.

O comando git bisect é útil para ajudar a encontrar commits que introduziram erros em um projeto. O processo envolve determinar um commit conhecido como "bom" e um commit conhecido como "ruim", e o Git faz uma busca binária para encontrar o commit específico que introduziu o erro. Os comandos envolvidos são:

-> git bisect start: inicia o processo de busca.
-> git bisect bad HEAD: marca o commit atual como "ruim".
-> git bisect good <hash do commit>: marca um commit como "bom".

git bisect reset: finaliza o processo de busca.\n-> git show: mostra todas as alterações feitas em um commit.

O comando git blame permite identificar o autor de uma alteração específica em um arquivo. Basta executar o seguinte comando, fornecendo o nome do arquivo como argumento:

-> git blame <nome arquivo>

O uso eficiente de branches é essencial no Git. Aqui estão alguns comandos relacionados a branches:

-> git branch <nome-nova-branch>: cria uma nova branch.
-> git merge <nome-outra-branch>: mescla os commits de outra branch na branch atual, gerando um novo commit.
-> git rebase <nome-outra-branch>: pega os commits de outra branch e atualiza a branch atual com eles.

Existem várias operações para navegar entre commits e branches:

-> git checkout <nome da branch> ou git switch <nome da branch>: muda para a branch especificada.
-> git checkout <hash do commit>: move para um commit específico.
-> git checkout -b <nome-nova-branch>: cria uma nova branch a partir do commit atual.
-> git checkout -- <arquivos>: descarta as alterações feitas antes do comando git add.
-> git reset HEAD <arquivos> e git checkout -- <arquivos>: desfaz as alterações feitas após o git add.
-> git revert: reverte as alterações de um commit, gerando um novo commit de reversão.

O comando git rebase -i permite unir, reordenar ou remover commits. É útil para refinar a história do Git antes de compartilhá-la com outras pessoas. Podemos executar o seguinte comando:

-> git rebase -i HEAD~<número de commits> ou git rebase -i <hash do commit anterior ao que eu quero>.

O comando git stash é usado para salvar temporariamente as alterações que não estão prontas para serem commitadas. Alguns comandos adicionais são:

-> git stash list: lista as alterações na stash.
-> git stash apply <número da alteração>: aplica uma alteração específica da stash.
-> git stash drop <número da alteração>: remove uma alteração específica da stash.
-> git stash pop: aplica e remove a última alteração da stash.

Tags são usadas para marcar commits específicos, geralmente para indicar lançamentos ou marcos importantes no projeto. Alguns comandos relacionados a tags são:

-> git tag -a <nome-tag> -m \"mensagem\": cria uma nova tag anotada com uma mensagem.
-> git tag: lista todas as tags disponíveis.
-> git push origin <nome-tag>: envia uma tag para o repositório remoto

Esses são apenas alguns dos muitos comandos e práticas úteis que o Git oferece. Com a compreensão desses conceitos e a prática contínua, você se tornará um usuário mais habilidoso do Git, capaz de aproveitar ao máximo esse poderoso sistema de controle de versão.

Autor: Tiago B. Silva

Carregando publicação patrocinada...
1

Complementando, seguem outros posts sobre o assunto:


Sobre o git reset, tem uma explicação bem detalhada aqui.

E sobre rebase, este artigo é bem esclarecedor. Ele é longo e boa parte dele parece que não tem nada a ver com rebase, mas garanto que no final tudo fará sentido :-)

E desde a versão 2.23.0 do Git (de 2019) existem os comandos switch e restore, que substituem várias funções do checkout. Mais detalhes aqui e aqui.

Por fim, tem também dois posts meus que falam sobre detalhes internos do Git, e que ajudam muito a entender melhor como ele funciona: