bashadvanced113 snippets

Git: O Kit de Emergência

Fez besteira no código? Salve este guia. Os comandos essenciais para desfazer erros, reverter commits e salvar seu emprego.

Seções8
1

📊 Status e Histórico

20 snippets

Esta seção detalha comandos para verificar o estado atual do repositório, explorar o histórico de commits de forma avançada e visualizar mudanças em arquivos ou commits específicos. Essencial para entender o fluxo de trabalho e depurar o histórico.

Status Curto

Exibe o status do diretório de trabalho e da área de staging de forma concisa. A flag -s (ou --short) mostra a saída em um formato abreviado e fácil de ler, indicando arquivos modificados, adicionados ou deletados.

bash
git status -s

Status para Scripts (Porcelain)

Fornece uma saída de status formatada para ser facilmente parseada por scripts. É uma interface estável e não projetada para leitura humana, ideal para automação.

bash
git status --porcelain

Incluir Arquivos Ignorados no Status

Inclui arquivos ignorados (listados no .gitignore) na saída do status, mostrando-os na seção "Untracked files". Útil para verificar se as regras de ignorar estão funcionando como esperado.

bash
git status --ignored

Informações da Branch no Status

Exibe informações adicionais sobre a branch atual, como o nome da branch, se ela está à frente ou atrás do seu upstream, e o hash do commit atual.

bash
git status --branch

Mostrar Stashes no Status

Mostra a quantidade de stashes que você tem atualmente. Útil para lembrar se há mudanças guardadas que precisam ser aplicadas ou removidas.

bash
git status --show-stash

Log Completo do Histórico

Fornece uma visualização completa e compacta do histórico de commits. `--oneline` mostra cada commit em uma linha, `--graph` desenha um grafo ASCII do histórico, `--all` inclui branches remotas e tags, e `--decorate` mostra os nomes das branches e tags.

bash
git log --oneline --graph --all --decorate

Log com Estatísticas

Exibe estatísticas de cada commit, mostrando quais arquivos foram modificados e o número de linhas adicionadas/deletadas. Útil para ter uma visão rápida do impacto de cada commit.

bash
git log --stat

Log com Diff Completo (Patch)

Mostra o diff completo (patch) para cada commit, exibindo as mudanças exatas de linha a linha. Essencial para revisar o conteúdo de cada alteração.

bash
git log --patch

Log por Período

Filtra o histórico de commits para mostrar apenas aqueles feitos dentro de um período específico. Pode-se usar formatos como "2 weeks ago", "yesterday", "2023-01-01".

bash
git log --since="2 weeks ago"

Log por Autor

Filtra o histórico para exibir apenas os commits feitos por um autor específico. O nome do autor deve corresponder ao configurado no Git.

bash
git log --author="nome"

Log por Mensagem de Commit

Filtra o histórico de commits por uma palavra-chave ou padrão regex na mensagem do commit. Útil para encontrar commits relacionados a correções de bugs ou funcionalidades específicas.

bash
git log --grep="fix"

Log por Mudança de Código (Pickaxe)

Busca commits que introduziram ou removeram uma string específica no código (também conhecido como "pickaxe" option). É poderoso para rastrear onde uma função ou variável foi alterada pela primeira vez.

bash
git log -S "função"

Log Seguindo Renomeações de Arquivo

Exibe o histórico de um arquivo específico, seguindo seu histórico através de renomeações. Garante que você veja todas as mudanças no arquivo, mesmo que seu nome tenha mudado.

bash
git log --follow arquivo.txt

Log Colorido e Formatado

Apresenta um log de commits altamente formatado e colorido, exibindo hash, branches/tags, mensagem, data relativa e autor. Personalizável para uma melhor legibilidade visual.

bash
git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset'

Log Compacto com Grafo

Uma visualização compacta e decorada do histórico, mostrando o grafo de branches e tags. Similar ao log completo, mas sem incluir todas as referências remotas por padrão.

bash
git log --oneline --decorate --graph

Log em Ordem Cronológica Inversa

Exibe o histórico de commits na ordem cronológica inversa, ou seja, do commit mais antigo para o mais recente. Útil para ver a evolução de um projeto.

bash
git log --reverse

Visualizar Último Commit

Mostra o conteúdo do último commit na branch atual, incluindo o diff. É uma forma rápida de revisar o que foi commitado mais recentemente.

bash
git show HEAD

Visualizar Commit Específico (HEAD~2)

Exibe o conteúdo do commit que está dois commits antes do HEAD. Pode-se usar qualquer referência de commit (hash, tag, branch, HEAD~n).

bash
git show HEAD~2

Visualizar Apenas Nomes de Arquivos Modificados

Mostra apenas os nomes dos arquivos que foram modificados no commit especificado, sem exibir o diff completo.

bash
git show --name-only HEAD

Visualizar Commit com Estatísticas

Exibe estatísticas de modificação para o commit especificado, mostrando quais arquivos foram alterados e o número de linhas adicionadas/deletadas.

bash
git show --stat HEAD
2

🌿 Branches Avançadas

15 snippets

Comandos essenciais para criar, listar, gerenciar e deletar branches, tanto locais quanto remotas. Fundamental para o desenvolvimento colaborativo e organização do fluxo de trabalho em projetos Git.

Criar e Trocar para Nova Branch (Checkout)

Cria uma nova branch com o nome especificado (ex: `feature/nova-funcionalidade`) e imediatamente troca para ela. É um atalho para `git branch <nome>` seguido de `git checkout <nome>`.

bash
git checkout -b feature/nova-funcionalidade

Criar e Trocar para Nova Branch (Switch)

Comando moderno e mais intuitivo para criar uma nova branch e trocar para ela. É a alternativa recomendada ao `git checkout -b` para essa finalidade.

bash
git switch -c feature/nova-funcionalidade

Listar Todas as Branches (Local e Remota)

Lista todas as branches, incluindo as locais e as remotas. As branches remotas são prefixadas com o nome do remote (ex: `remotes/origin/main`).

bash
git branch -a

Listar Apenas Branches Remotas

Lista apenas as branches remotas. Útil para ver quais branches existem nos repositórios remotos sem poluir a saída com as locais.

bash
git branch -r

Listar Branches com Último Commit

Lista as branches locais com informações adicionais, como o último commit de cada branch e a mensagem do commit. Ajuda a ter uma visão rápida do estado de cada branch.

bash
git branch -v

Listar Branches Mergeadas

Lista as branches que já foram totalmente mergeadas na branch atual. Geralmente, são branches que podem ser deletadas com segurança.

bash
git branch --merged

Listar Branches Não Mergeadas

Lista as branches que ainda não foram mergeadas na branch atual. Essas branches contêm trabalho que ainda não foi integrado e não devem ser deletadas sem cuidado.

bash
git branch --no-merged

Deletar Branch Local (Seguro)

Deleta a branch local especificada (ex: `feature-branch`). Este é um "delete seguro" que falhará se a branch contiver commits não mergeados na branch atual.

bash
git branch -d feature-branch

Forçar Deleção de Branch Local

Força a exclusão da branch local especificada, mesmo que ela contenha commits não mergeados. Use com cautela, pois pode resultar em perda de trabalho.

bash
git branch -D feature-branch

Deletar Branch Remota

Deleta uma branch do repositório remoto (ex: `origin/feature-branch`). É o comando para remover branches remotas que não são mais necessárias.

bash
git push origin --delete feature-branch

Renomear Branch Atual

Renomeia a branch local `old-name` para `new-name`. Se `old-name` for omitido, renomeia a branch atual.

bash
git branch -m old-name new-name

Forçar Renomeação de Branch

Força a renomeação de uma branch, mesmo que a `new-name` já exista. Use com cuidado para evitar sobrescrever branches existentes.

bash
git branch -M old-name new-name

Mostrar Branch Atual

Exibe o nome da branch atual em que você está trabalhando. Útil para scripts ou para confirmar rapidamente a branch.

bash
git branch --show-current

Branches Contendo um Commit Específico

Lista todas as branches que contêm o commit especificado (ex: `abc123`). Útil para rastrear onde um commit específico foi integrado.

bash
git branch --contains abc123

Ordenar Branches por Data do Último Commit

Lista as branches locais ordenadas pela data do último commit, do mais recente para o mais antigo. A flag `-` inverte a ordem.

bash
git branch --sort=-committerdate
3

🔄 Merge e Rebase

13 snippets

Comandos para integrar mudanças entre branches, seja através de um merge tradicional ou reorganizando o histórico com rebase. Inclui também o uso de cherry-pick para aplicar commits específicos. Essencial para manter um histórico de projeto limpo e organizado.

Merge Normal

Integra as mudanças da `feature-branch` na branch atual. Se possível, realiza um fast-forward merge; caso contrário, cria um merge commit.

bash
git merge feature-branch

Merge Sem Fast-Forward

Força a criação de um merge commit, mesmo que um fast-forward merge fosse possível. Isso preserva o histórico de branches, mostrando explicitamente onde a feature foi integrada.

bash
git merge --no-ff feature-branch

Merge com Squash

Aplica as mudanças da `feature-branch` na branch atual como um único commit, sem registrar a `feature-branch` no histórico. Os commits da `feature-branch` são "esmagados" em um único commit na branch de destino.

bash
git merge --squash feature-branch

Rebase Interativo (Últimos N Commits)

Inicia um rebase interativo nos últimos 3 commits a partir do HEAD. Permite reordenar, editar, esmagar (squash) ou dividir commits, e remover commits. Abre um editor de texto com as opções.

bash
git rebase -i HEAD~3

Rebase Interativo (Desde uma Branch)

Inicia um rebase interativo de todos os commits na branch atual que não estão na branch `main`. Útil para limpar o histórico antes de fazer um merge na `main`.

bash
git rebase -i main

Continuar Rebase

Continua o processo de rebase após resolver conflitos de merge ou após editar um commit durante um rebase interativo.

bash
git rebase --continue

Cancelar Rebase

Cancela o rebase em andamento e retorna a branch ao estado em que estava antes do início do rebase. Útil se você decidir não continuar ou se encontrar problemas insolúveis.

bash
git rebase --abort

Cherry-pick de Commit Específico

Aplica as mudanças introduzidas por um commit específico (ex: `abc123`) na branch atual, criando um novo commit com essas mudanças. Útil para portar correções ou funcionalidades pontuais.

bash
git cherry-pick abc123

Cherry-pick de Range de Commits

Aplica um range de commits (do `abc123` exclusivo até o `def456` inclusivo) na branch atual. Útil para portar múltiplas mudanças de uma vez.

bash
git cherry-pick abc123..def456

Cherry-pick Sem Criar Commit

Aplica as mudanças do commit `abc123` no diretório de trabalho e área de staging, mas sem criar um novo commit. Permite revisar e ajustar as mudanças antes de commitá-las.

bash
git cherry-pick --no-commit abc123

Cherry-pick com Crédito de Origem

Aplica o commit `abc123` e adiciona uma linha "cherry-picked from commit abc123" à mensagem do novo commit, indicando a origem.

bash
git cherry-pick -x abc123

Cherry-pick com Sign-off

Aplica o commit `abc123` e adiciona uma linha "Signed-off-by: Your Name <your.email@example.com>" à mensagem do novo commit, indicando que você certifica a origem da mudança.

bash
git cherry-pick --signoff abc123

Cancelar Cherry-pick

Cancela um cherry-pick em andamento e retorna a branch ao estado anterior. Útil se houver conflitos ou se o cherry-pick não for mais desejado.

bash
git cherry-pick --abort
4

🔍 Busca e Investigação

16 snippets

Ferramentas poderosas para buscar conteúdo dentro do código-fonte, investigar o histórico de modificações linha por linha e utilizar o `git bisect` para identificar o commit que introduziu um bug. Essencial para depuração e compreensão da evolução do código.

Buscar String no Working Tree

Busca por uma string ou padrão regex nos arquivos rastreados pelo Git no diretório de trabalho. É como um `grep` tradicional, mas otimizado para repositórios Git.

bash
git grep "função"

Buscar String em Commit Específico

Busca por uma string ou padrão regex no código em um commit específico (ex: `HEAD~5`). Útil para encontrar onde uma string existia em um ponto anterior do histórico.

bash
git grep "função" HEAD~5

Buscar String com Números de Linha

Busca por uma string e exibe os números de linha onde a correspondência foi encontrada. Ajuda a localizar rapidamente a ocorrência no arquivo.

bash
git grep -n "função"

Buscar String Case Insensitive

Realiza uma busca case insensitive, ignorando a diferença entre letras maiúsculas e minúsculas ao procurar pela string.

bash
git grep -i "função"

Blame: Quem Modificou Cada Linha

Mostra o histórico de revisões linha por linha para um arquivo específico. Para cada linha, exibe o commit que a modificou pela última vez, o autor e a data. Útil para identificar quem e quando alterou uma parte do código.

bash
git blame arquivo.txt

Blame de Linhas Específicas

Restringe a saída do `git blame` a um intervalo específico de linhas (da linha 10 à 20, inclusivo) de um arquivo. Útil para focar em uma seção problemática.

bash
git blame -L 10,20 arquivo.txt

Histórico de Arquivo com Patches

Exibe o histórico de commits que afetaram o `arquivo.txt`, incluindo o patch (diff) completo de cada alteração. Permite ver exatamente como o arquivo evoluiu.

bash
git log -p arquivo.txt

Histórico de Arquivo Seguindo Renomeações

Exibe o histórico de um arquivo específico, seguindo seu histórico através de renomeações. Garante que você veja todas as mudanças no arquivo, mesmo que seu nome tenha mudado.

bash
git log --follow arquivo.txt

Iniciar Bisect para Bugs

Inicia uma sessão de `git bisect`, que é uma ferramenta para encontrar o commit que introduziu um bug usando uma busca binária no histórico.

bash
git bisect start

Marcar Commit Atual como "Ruim"

Marca o commit atual (HEAD) como "ruim", indicando que o bug está presente neste ponto.

bash
git bisect bad HEAD

Marcar Versão Conhecida como "Boa"

Marca um commit conhecido (ex: `v1.0.0`) como "bom", indicando que o bug não estava presente neste ponto. O Git então escolhe um commit intermediário para você testar.

bash
git bisect good v1.0.0

Automatizar Bisect com Testes

Automatiza o processo de bisect executando um script ou comando (ex: `npm test`) em cada commit. O script deve retornar 0 para "bom" e um código de erro (1-127) para "ruim".

bash
git bisect run npm test

Finalizar Bisect

Finaliza a sessão de `git bisect` e retorna a branch ao commit em que estava antes de iniciar o bisect.

bash
git bisect reset

Visualizar Grafo do Bisect

Abre uma interface gráfica (se configurada) para visualizar o grafo de commits e o progresso do bisect.

bash
git bisect visualize

Mostrar Log do Bisect

Mostra o log de todos os comandos `git bisect` executados na sessão atual, útil para revisar o processo.

bash
git bisect log

Repetir Bisect de um Log

Repete uma sessão de bisect a partir de um arquivo de log previamente salvo, permitindo recriar o processo de depuração.

bash
git bisect replay arquivo.log
5

🏷️ Tags e Releases

13 snippets

Comandos para criar, listar e gerenciar tags, que são referências imutáveis para pontos específicos no histórico do repositório, geralmente usadas para marcar versões de software ou releases. Inclui também como enviar tags para repositórios remotos.

Criar Tag Leve (Lightweight)

Cria uma tag leve (lightweight tag) com o nome `v1.0.0` no commit atual. Tags leves são apenas um ponteiro para um commit.

bash
git tag v1.0.0

Criar Tag Anotada

Cria uma tag anotada (annotated tag) com o nome `v1.0.0` e uma mensagem descritiva. Tags anotadas são objetos Git completos, contendo nome do tagueador, e-mail, data e mensagem, e são recomendadas para releases.

bash
git tag -a v1.0.0 -m "Release 1.0.0"

Criar Tag Anotada em Commit Específico

Cria uma tag anotada `v1.0.0` em um commit específico (ex: `abc123`), em vez do HEAD. Útil para marcar commits passados.

bash
git tag -a v1.0.0 abc123 -m "Tag commit específico"

Listar Todas as Tags

Lista todas as tags no repositório local em ordem alfabética.

bash
git tag

Filtrar Tags

Lista tags que correspondem a um padrão específico (ex: todas as tags que começam com "v1.").

bash
git tag -l "v1.*"

Ver Detalhes da Tag

Exibe os detalhes de uma tag específica, incluindo a mensagem da tag (se for anotada) e o commit ao qual ela aponta.

bash
git show v1.0.0

Deletar Tag Local

Deleta a tag `v1.0.0` do repositório local. Isso não remove a tag de repositórios remotos.

bash
git tag -d v1.0.0

Deletar Tag Remota

Deleta a tag `v1.0.0` do repositório remoto `origin`. É necessário para remover tags publicadas.

bash
git push origin --delete v1.0.0

Enviar Tag Específica para Remote

Envia uma tag específica (`v1.0.0`) para o repositório remoto `origin`. Tags não são enviadas automaticamente com `git push`.

bash
git push origin v1.0.0

Enviar Todas as Tags para Remote

Envia todas as tags locais para o repositório remoto `origin`. Útil para publicar várias tags de uma vez.

bash
git push origin --tags

Verificar Assinatura de Tag

Verifica a assinatura GPG de uma tag anotada. Requer que a tag tenha sido assinada e que a chave GPG do signatário esteja disponível.

bash
git tag -v v1.0.0

Criar Tag Assinada

Cria uma tag anotada e assinada com GPG. A assinatura garante a autenticidade e integridade da tag.

bash
git tag -s v1.0.0 -m "Release"

Forçar Criação/Atualização de Tag

Força a criação ou atualização de uma tag existente. Use com cautela, pois pode sobrescrever tags importantes.

bash
git tag -f v1.0.0
6

📦 Stash Avançado

13 snippets

Comandos para gerenciar o "stash" do Git, uma área temporária para guardar mudanças não commitadas quando você precisa trocar de branch ou lidar com uma interrupção. Permite salvar o estado do diretório de trabalho e da área de staging para aplicar posteriormente.

Stash Básico

Salva as mudanças não commitadas (modificações no diretório de trabalho e arquivos staged) em uma pilha de stashes, revertendo o diretório de trabalho para o estado do último commit. Arquivos não rastreados não são incluídos por padrão.

bash
git stash

Stash com Mensagem

Salva as mudanças com uma mensagem descritiva. A mensagem ajuda a identificar o conteúdo do stash posteriormente, especialmente quando há vários stashes.

bash
git stash push -m "WIP: feature X"

Stash de Arquivo Específico

Salva apenas as mudanças de um arquivo específico no stash, deixando outros arquivos inalterados. O `--` é necessário para distinguir o caminho do arquivo de outras opções.

bash
git stash push -- arquivo.txt

Stash Incluindo Arquivos Não Rastreados

Salva as mudanças, incluindo também os arquivos não rastreados (untracked files) no stash. Útil para guardar todo o estado do diretório de trabalho.

bash
git stash push --include-untracked

Listar Stashes

Lista todos os stashes atualmente armazenados, mostrando uma breve descrição e o índice de cada um (ex: `stash@{0}`).

bash
git stash list

Ver Mudanças de um Stash

Exibe um resumo das mudanças contidas em um stash específico (ex: `stash@{0}`). Mostra quais arquivos foram modificados.

bash
git stash show stash@{0}

Ver Patch Completo de um Stash

Mostra o patch completo (diff) de um stash específico, exibindo as mudanças linha a linha. Essencial para revisar o conteúdo antes de aplicar.

bash
git stash show -p stash@{0}

Aplicar Stash Sem Remover

Aplica as mudanças de um stash específico no diretório de trabalho, mas mantém o stash na pilha. Útil se você quiser aplicar o mesmo stash em várias branches.

bash
git stash apply stash@{0}

Aplicar e Remover Stash

Aplica as mudanças de um stash específico no diretório de trabalho e, em seguida, remove o stash da pilha. É o comando mais comum para aplicar e limpar stashes.

bash
git stash pop stash@{0}

Remover Stash Específico

Remove um stash específico da pilha sem aplicar suas mudanças. Útil para descartar stashes que não são mais necessários.

bash
git stash drop stash@{0}

Limpar Todos os Stashes

Remove todos os stashes da pilha. Use com extrema cautela, pois esta ação é irreversível.

bash
git stash clear

Criar Branch a Partir de Stash

Cria uma nova branch a partir do commit onde o stash foi criado, aplica o stash nela e, em seguida, remove o stash da pilha. Útil para continuar o trabalho de um stash em uma nova branch.

bash
git stash branch nova-branch stash@{0}

Stash Apenas Mudanças Não Staged

Salva as mudanças não staged no stash, mas mantém as mudanças que já estavam na área de staging. Útil para commitar apenas parte das mudanças e guardar o restante.

bash
git stash --keep-index
7

↩️ Reset e Restore

9 snippets

Comandos poderosos para desfazer mudanças, reverter o histórico de commits e recuperar arquivos ou estados anteriores. Inclui o `git reset` (com suas variações de cautela) e o `git restore` (comando moderno e mais seguro), além do `git reflog` para recuperação de commits perdidos. ⚠️ ATENÇÃO: O comando `git reset --hard` é irreversível e perderá todas as mudanças não commitadas no diretório de trabalho e na área de staging. Use com extrema cautela! 💡 DICA: O `git reflog` é um salva-vidas! Mesmo após um `git reset --hard`, você pode recuperar commits perdidos usando o reflog para encontrar o hash do commit e então `git reset --hard <hash>`.

Reset Soft (Desfaz Commit, Mantém Staged)

Desfaz o último commit, movendo o HEAD para o commit anterior, mas mantém as mudanças do commit desfeito na área de staging. O diretório de trabalho permanece inalterado.

bash
git reset --soft HEAD~1

Reset Mixed (Desfaz Commit e Staging)

Desfaz o último commit e move as mudanças do commit desfeito para o diretório de trabalho (não staged). É o comportamento padrão do `git reset` se nenhuma flag for especificada. A área de staging é limpa.

bash
git reset --mixed HEAD~1

Reset Hard (APAGA TUDO! Cuidado!)

Desfaz o último commit, descarta todas as mudanças do commit desfeito do diretório de trabalho e da área de staging. Esta ação é irreversível e pode resultar em perda de trabalho não commitado. Use com extrema cautela!

bash
git reset --hard HEAD~1

Restaurar Arquivo no Working Tree

Descarta as mudanças no `arquivo.txt` no diretório de trabalho, restaurando-o para o estado do último commit. É uma alternativa mais segura e intuitiva para `git checkout -- arquivo.txt`.

bash
git restore arquivo.txt

Unstage Arquivo (Remover do Staging)

Remove o `arquivo.txt` da área de staging, movendo suas mudanças de volta para o diretório de trabalho (unstage). O arquivo no diretório de trabalho permanece inalterado.

bash
git restore --staged arquivo.txt

Restaurar Arquivo de Commit Específico

Restaura o `arquivo.txt` no diretório de trabalho e na área de staging para o estado em que ele estava em um commit específico (ex: `HEAD~1`). Útil para recuperar versões antigas de arquivos.

bash
git restore --source=HEAD~1 arquivo.txt

Ver Histórico de Referências (Reflog)

Exibe um log de todas as ações que modificaram o HEAD do repositório local. É um histórico de "onde o HEAD esteve", permitindo recuperar commits que parecem ter sido perdidos após resets ou rebases.

bash
git reflog

Histórico de Reflog de Branch

Exibe o reflog para uma branch específica (ex: `main`), mostrando todas as vezes que a referência `main` foi atualizada.

bash
git reflog show main

Voltar Usando Reflog

Volta o HEAD (e a branch atual) para um estado anterior registrado no reflog (neste caso, o segundo estado mais recente). É a principal forma de recuperar commits após um `git reset --hard` acidental.

bash
git reset --hard HEAD@{2}
8

☁️ Remote e Colaboração

14 snippets

Comandos avançados para gerenciar repositórios remotos, sincronizar branches, e colaborar efetivamente em projetos Git. Aborda desde a configuração de remotes até estratégias de fetch, pull e push para garantir um fluxo de trabalho colaborativo robusto.

Listar Remotes (Verbose)

Lista os repositórios remotos configurados para o projeto, mostrando seus nomes e URLs (verbose). Útil para verificar de onde você está puxando e para onde está enviando.

bash
git remote -v

Adicionar Novo Remote

Adiciona um novo repositório remoto com o nome `upstream` e a URL especificada. Comum para configurar um remote para o repositório original em um fork.

bash
git remote add upstream https://...

Alterar URL de Remote

Altera a URL de um repositório remoto existente (ex: `origin`). Útil para atualizar o local de um repositório ou mudar entre SSH e HTTPS.

bash
git remote set-url origin https://...

Remover Remote

Remove um repositório remoto com o nome `upstream` da configuração local. Isso não afeta o repositório remoto em si.

bash
git remote remove upstream

Fetch de Todos os Remotes

Baixa objetos e referências de todos os repositórios remotos configurados. Não integra as mudanças no diretório de trabalho, apenas atualiza as referências remotas locais.

bash
git fetch --all

Fetch com Prune (Remover Refs Deletadas)

Remove as referências locais para branches remotas que foram deletadas no repositório remoto. Ajuda a manter a lista de branches remotas limpa e atualizada.

bash
git fetch --prune

Pull com Rebase

Baixa as mudanças do repositório remoto e, em seguida, aplica suas mudanças locais em cima delas usando rebase. Isso evita commits de merge desnecessários e mantém um histórico linear.

bash
git pull --rebase

Pull Apenas Fast-Forward

Baixa as mudanças do repositório remoto e tenta realizar um fast-forward merge. Se um fast-forward não for possível (ou seja, há commits locais que não são ancestrais do remote), o comando falha, exigindo um merge manual ou rebase.

bash
git pull --ff-only

Push e Configurar Upstream

Envia a `feature-branch` para o repositório remoto `origin` e configura-a como a branch de upstream. Isso permite usar `git pull` e `git push` sem especificar o remote e a branch posteriormente.

bash
git push -u origin feature-branch

Force Push Seguro (with-lease)

Envia as mudanças para o repositório remoto, forçando a sobrescrita do histórico, mas com uma salvaguarda. Só funciona se o branch remoto não tiver sido atualizado por outra pessoa desde o seu último fetch, prevenindo sobrescritas acidentais de trabalho alheio.

bash
git push --force-with-lease

Deletar Branch Remota (Push)

Deleta a `feature-branch` do repositório remoto `origin`. O `:` antes do nome da branch local indica que você está enviando "nada" para a branch remota, efetivamente deletando-a.

bash
git push origin :feature-branch

Push de Todas as Branches

Envia todas as branches locais para o repositório remoto `origin`. Útil para garantir que todas as suas branches estejam sincronizadas com o remote.

bash
git push --all origin

Espelhar Repositório no Remote

Espelha o repositório local no repositório remoto `origin`. Isso significa que todas as branches, tags e referências do local serão replicadas no remoto, incluindo a exclusão de qualquer coisa que não esteja no local. Use com extrema cautela, pois é uma operação destrutiva.

bash
git push --mirror origin

Push com Tags e Follow-Tags

Envia todas as tags locais para o repositório remoto, e também envia quaisquer commits que sejam referenciados por essas tags (se ainda não estiverem no remote). `--follow-tags` garante que tags anotadas que apontam para commits que ainda não foram enviados também sejam enviadas.

bash
git push --tags --follow-tags

Receba os ultimos artigos no seu email.

Follow Us: