<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Jackson Emmerich</title>
    <description>The latest articles on Forem by Jackson Emmerich (@jacksonemmerich).</description>
    <link>https://forem.com/jacksonemmerich</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F762779%2F52c801e4-514c-45d8-b5f8-4362152e846c.jpeg</url>
      <title>Forem: Jackson Emmerich</title>
      <link>https://forem.com/jacksonemmerich</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/jacksonemmerich"/>
    <language>en</language>
    <item>
      <title>Git Cheat Sheat - Definitivo!</title>
      <dc:creator>Jackson Emmerich</dc:creator>
      <pubDate>Wed, 03 Sep 2025 14:25:20 +0000</pubDate>
      <link>https://forem.com/jacksonemmerich/git-cheat-sheat-definitivo-3bjl</link>
      <guid>https://forem.com/jacksonemmerich/git-cheat-sheat-definitivo-3bjl</guid>
      <description>&lt;h2&gt;
  
  
  Configuração Inicial
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Configurar um nome e email
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;
&lt;span class="nx"&gt;$&lt;/span&gt; &lt;span class="nx"&gt;git&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nb"&gt;global&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Danny Adams&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="nx"&gt;$&lt;/span&gt; &lt;span class="nx"&gt;git&lt;/span&gt; &lt;span class="nx"&gt;config&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nb"&gt;global&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;email&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;my-email@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Configure o nome e email que serão anexados aos seus commits e tags.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Iniciando um projeto
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Criar um repositório local
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git init &amp;lt;directory&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Crie um repositório local (omitindo o diretório atual para inicializar o diretório atual como um repositório Git).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Clonar um repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git clone &amp;lt;url&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Baixe um repositório remoto.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Adicionando as mudanças
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adicionar um arquivo ao staging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git add &amp;lt;file&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Adicione um arquivo ao área de preparação (staging).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Adicionar todos os arquivos ao staging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Stage todos os arquivos modificados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Commitar arquivos stageados
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"commit message"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Commitar todos os arquivos stageados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Adicionar mudanças a arquivos já rastreados e fazer commit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git commit &lt;span class="nt"&gt;-am&lt;/span&gt; &lt;span class="s2"&gt;"commit message"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Adicione todas as alterações feitas em arquivos rastreados e faça um commit.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Conceitos Básicos
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt;: branch de desenvolvimento padrão&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;origin&lt;/code&gt;: repositório upstream padrão&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HEAD&lt;/code&gt;: branch atual&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HEAD^&lt;/code&gt;: pai do HEAD&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;HEAD~4&lt;/code&gt;: quatro gerações acima do HEAD&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;grandparent of HEAD&lt;/code&gt;: avô do HEAD&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Branches
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Listar branches locais
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git branch

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Liste todos os branches locais. Use -r para listar branches remotos, -a para mostrar ambos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Criar um novo branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git branch &amp;lt;new-branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Crie um novo branch.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mudar para um branch e atualizar o diretório
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &amp;lt;branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mude para um branch e atualize o diretório de trabalho.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Criar e mudar para um novo branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; &amp;lt;new-branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Crie um novo branch e mude para ele.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Deletar um branch mesclado
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git branch &lt;span class="nt"&gt;-d&lt;/span&gt; &amp;lt;branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Delete um branch que já foi mesclado.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Deletar um branch (mesclado ou não)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git branch &lt;span class="nt"&gt;-D&lt;/span&gt; &amp;lt;branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Delete um branch, independentemente de estar mesclado ou não.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Adicionar uma tag ao commit atual
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git tag &amp;lt;tag-name&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Adicione uma tag ao commit atual (frequentemente usado para versões de lançamento).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Merging - Mesclando
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mesclar branch &lt;code&gt;a&lt;/code&gt; em &lt;code&gt;b&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout b
&lt;span class="nv"&gt;$ &lt;/span&gt;git merge a

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mesclar o branch a no branch b. Adicione --no-ff para evitar merge fast-forward.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A opção &lt;code&gt;--no-ff&lt;/code&gt; (no fast-forward) é usada durante o merge para evitar o merge fast-forward. Vou explicar melhor:&lt;/p&gt;

&lt;h3&gt;
  
  
  O que é um merge fast-forward?
&lt;/h3&gt;

&lt;p&gt;Quando você faz um merge normal e o branch atual (destino) não tem commits novos desde que o branch sendo mesclado (origem) foi criado, o Git simplesmente move o ponteiro do branch atual para frente, até o último commit do branch de origem. Isso é chamado de "fast-forward" porque não cria um novo commit de merge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Por que usar --no-ff?
&lt;/h3&gt;

&lt;p&gt;Ao usar a opção &lt;code&gt;--no-ff&lt;/code&gt;, você força o Git a criar um commit de merge mesmo quando um merge fast-forward seria possível. Isso tem algumas vantagens:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Preserva o histórico de existência do branch de feature, criando um registro explícito de que um merge aconteceu&lt;/li&gt;
&lt;li&gt;Mantém todos os commits relacionados à feature agrupados visualmente em ferramentas gráficas como gitk ou no comando &lt;code&gt;git log --graph&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Facilita a reversão de todas as mudanças da feature de uma vez só (com um único revert)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sem o &lt;code&gt;--no-ff&lt;/code&gt;, o histórico fica linear e perde-se a informação visual de que aqueles commits pertenciam a um branch separado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemplo visual:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Com fast-forward (padrão):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A---B---C---D  (main)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Com --no-ff:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A---B---C---D---E  (main)&lt;/p&gt;

&lt;p&gt;\     /&lt;/p&gt;

&lt;p&gt;D'&lt;/p&gt;

&lt;p&gt;No segundo caso, você mantém um registro claro de que houve um merge e que D' pertencia a um branch separado.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mesclar e esmagar todos os commits em um único novo commit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git merge &lt;span class="nt"&gt;--squash&lt;/span&gt; a

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mesclar e esmagar todos os commits em um único novo commit.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Rebasing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Rebase um branch em &lt;code&gt;main&lt;/code&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout feature
&lt;span class="nv"&gt;$ &lt;/span&gt;git rebase main

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Rebase o branch feature sobre main para incorporar as novas alterações feitas em main. Evita merges desnecessários, mantendo o histórico limpo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Rebase interativo dos últimos 3 commits
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git rebase &lt;span class="nt"&gt;-i&lt;/span&gt; HEAD~3

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Rebase interativo dos últimos 3 commits no branch atual.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Desfazendo coisas
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Mover/renomear um arquivo e stage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git &lt;span class="nb"&gt;mv&lt;/span&gt; &amp;lt;existing_path&amp;gt; &amp;lt;new_path&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Move (ou renomeia) um arquivo e o adiciona ao staging.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Remover um arquivo do diretório de trabalho e staging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;file&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Remove um arquivo do diretório de trabalho e área de staging, então stage a remoção.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Remover apenas do staging
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git &lt;span class="nb"&gt;rm&lt;/span&gt; &lt;span class="nt"&gt;--cached&lt;/span&gt; &amp;lt;file&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Remove apenas do área de staging.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Ver um commit anterior (leitura apenas)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git checkout &amp;lt;commit_ID&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Visualize um commit anterior (modo de leitura).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Criar um novo commit revertendo mudanças
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git revert &amp;lt;commit_ID&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Crie um novo commit que reverte as mudanças de um commit específico.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Voltar a um commit anterior e deletar commits posteriores
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git reset &amp;lt;commit_ID&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Volte a um commit anterior e delete todos os commits após ele (revert é mais seguro). Use --hard para apagar mudanças no workspace (SEJA MUITO CUIDADOSO!).&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Revise seu repositório
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Listar arquivos novos ou modificados ainda não commitados
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git status

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Liste arquivos novos ou modificados que ainda não foram commitados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mostrar histórico de commits com IDs
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mostre o histórico de commits com respectivos IDs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mostrar alterações em arquivos não stageados
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git diff

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mostre as alterações em arquivos não stageados. Para arquivos stageados, use --cached.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mostrar diferenças entre dois commits
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git diff commit1_ID commit2_ID

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mostre as diferenças entre dois commits.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Stashing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Armazenar mudanças modificadas e stageadas
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Armazene mudanças modificadas e stageadas. Use -u para incluir arquivos não rastreados. Use -a para arquivos não rastreados e ignorados.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Armazenar com comentário
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash save &lt;span class="s2"&gt;"comment"&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Como acima, mas adicione um comentário.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Armazenar parcialmente (um arquivo ou parte de um)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash &lt;span class="nt"&gt;-p&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Armazene parcialmente: apenas um arquivo, coleção de arquivos ou mudanças individuais dentro de arquivos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Listar todos os stashes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash list

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Liste todos os stashes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Re-aplicar o stash sem excluí-lo
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash apply

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Reaplique o stash sem excluí-lo.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Re-aplicar o stash em índice 2 e excluí-lo
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash pop stash@&lt;span class="o"&gt;{&lt;/span&gt;2&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Reaplique o stash no índice 2, então exclua-o do stash. Use stash@{n} para pular o último stash.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Mostrar resumo das diferenças do stash 1
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git stash show stash@&lt;span class="o"&gt;{&lt;/span&gt;1&lt;span class="o"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Mostre o resumo das diferenças do stash 1. Use -p para ver a diferença completa.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Sincronizando
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Adicionar um repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git remote add &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;url&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Adicione um repositório remoto.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Ver conexões remotas
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git remote

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Liste todas as conexões remotas. Use -v para ver URLs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Remover uma conexão remota
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git remote remove &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Remova uma conexão remota.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Renomear uma conexão remota
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git remote rename &amp;lt;old&amp;gt; &amp;lt;new&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Renomeie uma conexão remota.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Buscar todos os branches do repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git fetch &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Busque todos os branches do repositório remoto (sem merge).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Buscar um branch específico
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git fetch &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Busque um branch específico.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Buscar cópia do repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git pull

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Busque a cópia do repositório remoto, então faça merge.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Atualizar com rebase (histórico limpo)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git pull &lt;span class="nt"&gt;--rebase&lt;/span&gt; &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Faça um rebase das suas mudanças locais sobre as novas mudanças feitas no repositório remoto (para histórico limpo e linear).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Enviar conteúdo local para repositório remoto
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git push &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Envie o conteúdo local para o repositório remoto.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Enviar para um branch específico
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;git push &amp;lt;&lt;span class="nb"&gt;alias&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &amp;lt;branch&amp;gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Envie para um branch específico (depois pode fazer pull novamente).&lt;/p&gt;


&lt;/blockquote&gt;

&lt;p&gt;✅ &lt;em&gt;Este cheat sheet foi criado para ajudar desenvolvedores a lembrarem rapidamente dos comandos essenciais do Git.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>git</category>
      <category>tutorial</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
