Folha de dicas de 32 comandos Git para iniciantes
Publicados: 2022-09-23A folha de dicas de comandos GIT é uma referência útil para desenvolvedores e contém os comandos mais usados para projetos git.
O que é GIT?
O GIT é um repositório de código aberto onde os usuários podem colocar seus arquivos, incluindo código, zips, texto ou todo o projeto.
Possui vários recursos, como colaboração, controle de versão, controle de processo, etc. O GIT armazena arquivos de forma mais eficiente e oferece melhor integridade do que outros sistemas de controle de versão. Git é uma ferramenta de linha de comando.
O que é o GitHub?
Com sua interface de usuário elegante, o GitHub, um hub para desenvolvedores, tornou-se o sistema de controle de versão mais usado e pode ser acessado por qualquer pessoa, em qualquer lugar.
Fluxo de trabalho do Git
O Git tem fluxos de trabalho diferentes e todo projeto deve ter um baseado em seus requisitos. O fluxo de trabalho do Git nada mais é do que um fluxo de trabalho leve e baseado em ramificação que ajuda as equipes que implantam projetos regularmente.
Por exemplo, um fluxo de trabalho de bifurcação do Git cria uma cópia local do repositório. Assim, cada desenvolvedor tem um espaço de trabalho local e um repositório central. Esse tipo de fluxo de trabalho é bom quando vários desenvolvedores estão envolvidos e permite que os desenvolvedores colaborem na cópia bifurcada antes de fazer alterações no repositório principal.
Por que precisamos do Git?
Como o Git é um sistema de controle de versão, os desenvolvedores trabalham constantemente nele para salvar suas alterações, torná-las visíveis para outras pessoas, mesclar suas alterações com outras e muito mais.
Para qualquer alteração no repositório Git, os desenvolvedores precisam conhecer os comandos certos para a ação certa. Abaixo está uma lista dos comandos Git importantes e comumente usados:
Comandos comuns do Git
git add
Para adicionar o(s) arquivo(s) especificado(s) ao staging
git add <file> -- add a specific file git add * -- add all the files
arquivo git
Cria arquivos de commits, branches e árvores e combina vários arquivos em um. Você pode recuperar o conteúdo extraindo os arquivos quando necessário
git archive HEAD
— cria um arquivo a partir da referência HEAD do repositório
git archive output = '.tar'
— armazena os arquivos arquivados no local fornecido
git archive --format=tar.gz
— especifica o formato do arquivo arquivado, como tar, zip, tar.gz
git branch
Lista todas as ramificações no repositório. Uma nova ramificação com o nome será criada se uma ramificação for especificada. Para excluir uma ramificação, use a opção -d com o nome da ramificação. Para renomear uma ramificação atual, use -m.
git branch
— lista todos os branches
git branch <branch_name
> — cria um novo branch chamado 'branch_name' mas não verifica o novo branch.
git branch -d <branch_name>
— exclui a ramificação, impede a exclusão se houver alterações não mescladas
git branch -D <branch_name>
— força a exclusão do branch mesmo se houver alterações não mescladas
git branch -m <branch2>
— renomeia o branch atual
git cat-file
Exibir conteúdo ou informações de tamanho/tipo de objetos de repositório
git cat-file <object>
— mostra o conteúdo do objeto
git cat-file -t <object>
— exibe o tipo de objeto
git cat-file -s <object>
— mostra o tamanho do objeto
git cat-file -p <object>
— imprime o tipo de objeto de uma maneira bonita
git cat-file -e <object>
— mostra o erro no stderr se o objeto tiver um formato inválido ou não existir
git cat-file <type> <object>
— mostra o conteúdo bruto de um objeto
git checkout
Para alternar entre diferentes ramificações de um repositório, use-o com cuidado, pois não há 'desfazer' para isso.
git checkout <branch_name>
— verifica o branch especificado
git checkout -b <branch_name>
— cria um novo branch e muda para este branch
Por exemplo:
C:\Users\geekflare>git checkout -b development_branch Switched to a new branch 'development_branch'
fique limpo
Limpe o diretor de trabalho. Os arquivos confirmados não serão removidos
git clean -n
— lista os arquivos que serão removidos
git clean -f
— remove os arquivos
git clone
Crie uma cópia do repositório existente em um novo diretório. Útil para obter uma cópia de desenvolvimento de um repositório central.
git clone <central_repo> <new_dir>
— cria uma cópia do repositório central em um novo diretório
Por exemplo:
C:\Users\geek>git clone geekflare master Cloning into 'master'… done.
git clone -branch <branch> <repo>
— clona um branch do repositório mencionado
git commit
Salva as alterações em um ambiente de teste para que outras pessoas possam vê-las.
git commit
— confirma as alterações no staging
git commit -m <useful_msg>
— fornece uma mensagem após o commit para destacar as alterações feitas
git commit -a
— confirma as alterações diretamente, sem staging
Digamos que você adicionou um arquivo chamado samplefile.txt ao seu diretório de trabalho e deseja confirmar o arquivo. Ao dar o comando acima, você obterá a saída:
Please enter the commit message for your changes. Lines starting with '#' will be ignored, and an empty message aborts the commit. On branch master Initial commit Changes to be committed: new file: samplefile.txt
Depois de dar a mensagem, as alterações são confirmadas:
C:\Users\geekflare>git commit -m 'samplemsg' [integration_branch (root-commit) ed52dd0] 'samplemsg' 1 files changed, 24 insertions(+) create mode 100644 samplefile.txt
configuração do git
Especifica o nível de configuração para gravar um valor de propriedade. O nível 'Local' é o padrão (quando nada é especificado).
git config –local
— salva a configuração no diretório .git do repositório
git config –global
— salva a configuração no diretório inicial do usuário
git config –system
— contém a configuração de todos os usuários e repositórios e está localizado no arquivo git config do root.
git diff
Compare as alterações no repositório git, que podem ser feitas antes do teste, no teste e após o teste (commit).
git diff
— rastreia alterações de repositório que ainda não foram testadas
git diff --staged
— rastreia alterações de arquivos testados (que não são confirmados)
git diff HEAD
— rastreia as alterações do arquivo após o commit
git diff <commit1_id> <commit2_id>
— rastreia mudanças entre dois commits; você pode descobrir os commit_ids usando ' git log -p --follow --filename
'
git buscar
Buscar uma ramificação ou repositório remoto inteiro
git fetch <remote-url>
— obtém todo o repositório da URL do repositório remoto
git fetch <branch_url> <branchname>
— busca o branch específico
git fetch -all
— busca todas as ramificações de um repositório remoto
git fetch origin
— atualize e sincronize o repositório local com as novas alterações no repositório remoto
git fsck
O comando File System Chec K verifica a validade e a conectividade dos objetos do banco de dados. Ele verifica o SHA-1ID dos objetos e as conexões que eles fazem. Fsck é útil para recuperar commits e arquivos perdidos.
git fsck –full
git gc
Executa a coleta de lixo no repositório atual e limpa os arquivos não utilizados.
git gc
git grep
Pesquisa por conteúdo específico no repositório. O Git oferece muitas opções para pesquisar de diferentes maneiras
git grep -i 'search_term'
— pesquisa ignorando maiúsculas e minúsculas [Man e man will be the same]
git grep -f <file_name>
— mostra os padrões correspondentes de um arquivo específico
git grep -e 'search-term'
— use -e para correspondência de padrões
git grep -E 'regexp|multiple_exp'
–Pesquisa por expressões regulares, podemos pesquisar várias usando o operador pipe (OR)
git grep -n 'expr'
— prefixa o número da linha correspondente
git grep -c 'expr'
— mostra a contagem de linhas que corresponderam em vez de cada linha
git ls-tree
Para listar o conteúdo de um objeto de árvore do diretório atual.
git ls -tree -d <path>
— mostra apenas a entrada da árvore especificada, não os filhos
git ls -tree -r
— recurse em subárvores
git ls -tree -l
— mostra o tamanho dos objetos de arquivo (blob)
git ls -tree --name-only
— exibe apenas nomes de arquivos e não a saída longa
git ls -tree --full-name
— mostra os nomes completos dos caminhos e não apenas o caminho relativo ao diretório atual

Exemplo:
C:\Users\geek>git ls-tree --full-tree -r HEAD 100644 blob e883e60087e84f1660a9673ccb86eb0adc4f004d samplefile.txt 100644 blob 1426dc6fbff0677a484b248983a8740ff30fbb80 sample_jsindex.js
git init
Crie um novo repositório em branco. É o primeiro comando que você executa para fazer um projeto git.
git init
— cria um repositório .git no diretório de trabalho,
Por exemplo, para criar um novo repositório chamado 'geekflare', dê o comando como:
$ git init geekflare Initialized empty Git repository in C:/Users/geek/geekflare/.git/
git instaweb
Interface do usuário para navegar no repositório git por meio de um navegador. Usa o script CGI GitWeb para o mesmo.
git instaweb --httpd=webrick
— inicia o servidor (httpd) e abre o navegador da web na página.
Para parar o servidor, use o comando acima com a opção –stop.
git log
Registra todas as atividades no repositório git.
git log
— exibe os últimos commits
git log --oneline
— mostra a saída como os primeiros 7 caracteres de SHA e a mensagem de commit com um commit por linha
git log stat
— exibe mais informações sobre os arquivos modificados, como o número de linhas adicionadas/removidas, um resumo do total de registros alterados, linhas adicionadas/removidas
git log --patch (or -p)
— mostra os arquivos modificados, as alterações específicas e sua localização
git log --graph
— Visualize os resultados do log em forma de gráfico
git log -<n>
— exibe o último 'n' número de commits
git log --after=<date/x days/yesterday>
— exibe todos os commits após uma data especificada. Você pode usar --before
para exibir commits antes da data especificada
git log --author=<author_name>
— exibe os commits de um determinado autor (usuário).
git log --grep=<commit message>
— filtra os commits com base na mensagem do commit
git merge
Integra todos os arquivos de desenvolvimento em uma única ramificação, combina duas ramificações e mescla vários commits em um único histórico. A mesclagem para se houver um conflito e o git apresenta os arquivos de conflito. Depois que os conflitos são resolvidos, a mesclagem continua.
git checkout -b
— primeiro, faça o checkout do branch para mesclar
git add <file>
git commit
— adiciona e confirma os arquivos
git checkout master
git merge
— mescla o branch com master
git prune
Exclui (Prunes) os arquivos inacessíveis da ramificação atual. É um processo de limpeza para remover arquivos não utilizados da filial
git prune -n
— não podar, apenas mostrar o que tudo pode ser podado
git prune -v
— mostra a saída das ações feitas pelo prune
git prune --progress
— mostra o progresso da poda
git fetch --prune
— remove todos os branches desatualizados
git pull
Ele recebe dados de um servidor remoto para um repositório de trabalho. Ele atualiza a ramificação local (de trabalho) com todos os arquivos mais recentes do repositório remoto.
git pull
— puxa o repositório remoto
git pull <repo URL>
— puxa um branch remoto específico
git push
Envia todas as alterações locais para o repositório remoto. É um processo de upload exatamente oposto aos comandos pull e fetches
git checkout master
— faça o checkout do branch que tem as alterações mais recentes
git push origin master
— envia as alterações para o repositório remoto
Exemplo:
C:\Users\geek>git checkout development_branch Switched to branch 'development_branch' C:\Users\geek>git push master development_branch Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (3/3), done. Writing objects: 100% (4/4), 612 bytes | 204.00 KiB/s, done. Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 To master [development_branch] development_branch -> development_branch
Também podemos usar push para excluir um branch remoto usando o comando git push --delete <branch>
.
Por exemplo:
C:\Users\geek>git push master --delete development_branch To master [deleted] development_branch
git rebase
Combina vários commits de diferentes branches para criar um novo commit base final. Útil antes de mesclar todas as alterações, para confirmar as alterações de diferentes ramificações uma a uma (linearmente).
git rebase <branch name>
— combina os commits em uma base final
Se houver algum conflito, resolva-o e continue o rebase:
git rebase --continue
Para pular qualquer alteração:
git rebase --skip
git remote
Verifica a configuração do servidor remoto e permite acesso à conexão entre remoto e local.
git remote
— por padrão, ele retorna 'origin', o nome padrão do servidor remoto fornecido pelo Git
git remote -v
— lista nomes curtos e URLs de todas as conexões remotas disponíveis
git remote add <short name> <remote url>
— adiciona explicitamente o servidor remoto às conexões disponíveis. O nome curto pode ser usado para comandos git em vez de fornecer a URL inteira.
git remote remove <remote url/short name>
— remove o servidor remoto do repositório
git reset
Volte para um commit anterior e descarte as alterações feitas após esse commit
git reset <hash of the commit>
— restaura o repositório para o commit especificado. O Git irá reter o histórico de commits, então você pode fazer outro reset com um commit diferente (hash) para desfazer um reset.
git rm
Remove o arquivo específico do git. Você pode desfazer o efeito de rm usando o comando reset ou checkout
git rm <file_ name>
— remove o arquivo específico
Para remover arquivos do git, mas mantê-los em seu local (staging), use:
git rm --cached
git show
Visualize qualquer objeto como blob, tree, commit ou tag especificando seu SHA1
git show
— não especificar o <object> mostra os detalhes do último commit no branch.
git show <SHA1_id>
— mostra o conteúdo do objeto especificado pelo seu id SHA1, por exemplo, blob id, tree id, etc. Para verificar o tipo de objeto, use o comando git cat-file -t
git show –pretty
— mostra a saída em um formato bonito.
Você pode fornecer um formato personalizado:
git show --pretty = 'format:Name: <format>'
Ou você pode usar um dos formatos curto, completo, de uma linha, médio ou mais completo, por exemplo:
git show --pretty= 'medium'
— isso mostrará o autor, a data, o título e a mensagem de confirmação completa
git show --abbrev-commit
— para abreviar SHA1
git stash
Para alternar entre as ramificações sem confirmar na ramificação atual, armazene os dados não confirmados com segurança
git stash
— salva o trabalho e o estado do índice
git stash save <message>
— dá uma mensagem enquanto salva
git stash list
— Veja a lista de conteúdo stash
git stash apply
— confirme as alterações armazenadas. Para aplicar as alterações de um stash específico, use o id do índice do stash junto com apply
git stash show
— veja o conteúdo dos arquivos stash
git stash drop
— remove o stash mais recente da fila
status do git
Visualize o status do repositório e do staging, ou seja, o status antes do estágio de commit. Você pode usar este comando após qualquer outro comando git, como adicionar, atualizar ou remover um arquivo
git status
— mostra as alterações que devem ser confirmadas ou alterações não rastreadas (sem estágios)
Por exemplo, se você adicionar um arquivo em seu diretório de trabalho chamado samplefile.txt e verificar se ele foi adicionado, você pode fornecer o comando acima. Isso resultará na saída da seguinte forma:
On branch master No commits yet Changes to be committed: (use "git rm --cached …" to unstage) new file: samplefile.txt
git tag
Referências amigáveis são usadas para indicar marcos ou pontos de referência no código
git tag <tag_name>
— cria uma tag com o nome dado
git tag
— lista todas as tags disponíveis
git tag show <tag_name>
— mostra detalhes da tag especificada
git tag -l “.*”
— mostra as tags que correspondem ao padrão ou caracteres especificados
gitk
Inicia a interface de usuário do git que exibe o conteúdo, commits, full diff e outros detalhes em uma janela
gitk
— abre o repositório git em uma janela para visualização
versão git
Use o comando git version para verificar a versão do git que você está usando.
C:\Users\geekflare>git version git version 2.38.0.windows.1
Palavras finais
Este post listou os comandos git mais usados com suas opções.
Em seguida, você pode conferir o verificador de credenciais do GitHub.