LogoLogo
  • Git e GitHub para Humanos
  • Sumário
  • 1. Antes de Começar
    • 1.1 Este livro é para você?
    • 1.2 A razão por trás deste livro
    • 1.3 Visão geral
    • 1.4 Sobre o GitHub
    • 1.5 Sobre a Cumbuca Dev
    • 1.6 O maravilhoso mundo do open source
    • 1.7 Mapa do livro
    • 1.8 Glossário: capítulo 1
  • 2. Fundamentos de Controle de Versão e Git
    • 2.1 Introdução a sistemas de controle de versão
      • 2.1.1 Sistemas de controle de versão centralizados
      • 2.1.2 Sistemas de controle de versão distribuídos
    • 2.2 Introdução ao Git
    • 2.3 Conceitos Fundamentais do Git
      • 2.3.1 Repositório
      • 2.3.2 Commit
      • 2.3.3 Branch
      • 2.3.4 Merge
    • 2.4 Instalando o Git
      • 2.4.1 Instalando no Linux
      • 2.4.2 Instalando no macOS
      • 2.4.3 Instalando no Windows
    • 2.5 Interagindo com o Git
    • 2.6 O Comando Git
    • 2.7 Inicializando de um Repositório Local
    • 2.8 Configurando de um Repositório Local
    • 2.9 Links Úteis: Capítulo 2
    • 2.10 Glossário: Capítulo 2
  • 3. Operações Locais Básicas no Git
    • 3.1 Explorando Operações Locais do Git
    • 3.2 Salvando Alterações Localmente
      • 3.2.1 Adicionando Arquivos ao Controle de Versão via `git add`
      • 3.2.2 Verificando o Estado do Repositório via `git status`
      • 3.2.3 Criando Commits via `git commit`
      • 3.2.4 Visualizando o Histórico do Repositório via `git log`
      • 3.2.5 Comparando Alterações via `git diff`
      • 3.2.6 Unindo os Pontos
      • 3.2.7 Exemplo Prático
    • 3.3 Trabalhando com Branches Localmente
      • 3.3.1 Gerenciando Branches via `git branch`
      • 3.3.2 Alternando Entre Branches via `git switch`
      • 3.3.3 Mesclando Branches via `git merge`
        • 3.3.3.1 Resolvendo Conflitos de Merge
      • 3.3.4 Unindo os Pontos
      • 3.3.5 Exemplo Prático
    • 3.4 Links Úteis: Capítulo 3
    • 3.5 Glossário: Capítulo 3
  • 4. Ajuste de Mudanças Locais no Git
    • 4.1 Desfazendo Alterações Localmente
      • 4.1.1 Desfazendo Alterações Antes do Commit
      • 4.1.2 Desfazendo Commits
      • 4.1.3 Alterando o Último Commit via `git commit --amend`
      • 4.1.4 Unindo os Pontos
      • 4.1.5 Exemplos Práticos
    • 4.2 Ignorando e Removendo Arquivos do Rastreamento Local
      • 4.2.1 Ignorando Arquivos do Rastreamento Utilizando o arquivo .gitignore
      • 4.2.2 Removendo Arquivos do Rastreamento via `git rm`
    • 4.3 Links Úteis: Capítulo 4
    • 4.4 Glossário: Capítulo 4
  • 5. Introdução ao GitHub
    • 5.1 Qual a diferença entre Git e GitHub?
    • 5.2 Grandes Projetos Abertos no GitHub
    • 5.3 Recursos do GitHub
    • 5.4 Idioma Suportado no GitHub
    • 5.5 Contas no GitHub
      • 5.5.1 Conta Pessoal
      • 5.5.2 Conta de Organização
      • 5.5.3 Conta Corporativa
      • 5.5.4 Unindo os Pontos
    • 5.6 Planos do GitHub
    • 5.7 Criando uma Conta Pessoal no GitHub
    • 5.8 Explorando a Interface do GitHub
      • 5.8.1 Página Principal (Home)
      • 5.8.2 Página de Notificações (Notifications)
      • 5.8.3 Página de Configurações (Settings)
    • 5.9 Links Úteis: Capítulo 5
    • 5.10 Glossário: Capítulo 5
  • 6. Repositórios no GitHub
    • 6.1 O quê é um Repositório no GitHub?
    • 6.2 Criando um Repositório no GitHub
    • 6.3 Página Principal de um Repositório: Aba Code
      • 6.3.1 Editando um Arquivo em um Repositório no GitHub
      • 6.3.2 Explorando o Histórico de Commits de um Repositório no GitHub
      • 6.3.3 Editando Detalhes de um Repositório no GitHub
      • 6.3.4 Explorando um Repositório Ativo em Uso
    • 6.4 Página de Configurações de um Repositório: Aba Settings
      • 6.4.1 Gerenciando Configurações Gerais de um Repositório no GitHub: Menu General
      • 6.4.2 Gerenciando Configurações de Colaboração de um Repositório no GitHub: Menu Collaborators
      • 6.4.3 Explorando Configurações de um Repositório no GitHub na Prática
    • 6.5 Links Úteis: Capítulo 6
    • 6.6 Glossário: Capítulo 6
  • 7. Documentação de Projetos
    • 7.1 O quê é Documentação de Projeto?
    • 7.2 Explorando a Linguagem de Marcação Markdown
    • 7.3 Criando uma Página de Apresentação no GitHub
    • 7.4 Links Úteis: Capítulo 7
    • 7.5 Glossário: Capítulo 7
  • 8. Issues no GitHub
    • 8.1 O quê é GitHub Issues?
    • 8.2 Criando uma Issue no GitHub
    • 8.3 Explorando a Página de uma Issue no GitHub
    • 8.4 Atribuindo uma Issue no GitHub
    • 8.5 Categorizando Issues de um Repositório através de Labels no GitHub
      • 8.5.1 Gerenciando Labels de um Repositório no GitHub
    • 8.6 Página de Issues de um Repositório no GitHub: Aba Issues
    • 8.7 Explorando Issues no Mundo Real
    • 8.8 Links Úteis: Capítulo 8
    • 8.9 Glossário: Capítulo 8
  • 9. Git Remoto
    • 9.1 Explorando Operações Remotas do Git
    • 9.2 Interagindo com o Repositório Remoto Central no Git
      • 9.2.1 Clonando um Repositório Remoto via `git clone`
      • 9.2.2 Buscar Atualizações de um Repositório Remoto via `git fetch`
      • 9.2.3 Enviando Mudanças Locais para o Repositório Remoto via `git push`
      • 9.2.4 Sincronizando o Repositório Local com o Remoto via `git pull`
      • 9.2.5 Unindo os Pontos
      • 9.2.6 Exemplo
    • 9.3 Interagindo com o Repositório Remoto hello-world
      • 9.3.1 Conectando-se ao GitHub via SSH
      • 9.3.2 Clonando o Repositório hello-world
      • 9.3.3 Alterando hello-world Localmente
        • 9.3.3.1 Editor de Código
        • 9.3.3.2 Editando README.md
        • 9.3.3.3 Salvando Alterações no Controle de Versão Local
      • 9.3.4 Enviando Alterações para o Repositório Remoto
    • 9.4 Links Úteis: Capítulo 9
    • 9.5 Glossário: Capítulo 9
  • 10. Pull Requests no GitHub
    • 10.1 O quê é um Pull Requests no GitHub?
    • 10.2 Entendendo as Propriedades de um Pull Request no GitHub
      • 10.2.1 Branches de Origem e de Destino de um Pull Request
      • 10.2.2 Título de um Pull Request
      • 10.2.3 Descrição de um Pull Request
      • 10.2.4 Modificações de um Pull Request
      • 10.2.5 Pessoas Revisoras de um Pull Request
      • 10.2.6 Labels de um Pull Request
    • 10.3 Criando um Pull Request no GitHub
    • 10.4 Página de um Pull Request no GitHub
      • 10.4.1 Aba Conversation
      • 10.4.2 Aba Commits
      • 10.4.3 Aba Checks
      • 10.4.4 Aba Files Changed
    • 10.5 Página de Pull Requests de um Repositório no GitHub: Aba Pull Requests
    • 10.6 Recebendo Revisões em um Pull Request no GitHub
      • 10.6.1 Boas Práticas
      • 10.6.2 Exemplo Prático
        • 10.6.2.1 Adicionando Conta Colaboradora
        • 10.6.2.2 Solicitando Revisão de Pull Request
        • 10.6.2.3 Lidando com o Feedback
    • 10.7 Mesclando um Pull Request no GitHub
      • 10.7.1 Exemplo Prático
    • 10.8 Atualizando um Repositório Local Após Mesclagem
    • 10.9 Explorando Pull Requests no Mundo Real
    • 10.10 Links Úteis: Capítulo 10
    • 10.11 Glossário: Capítulo 10
  • 11. Fluxo de Trabalho
    • 11.1 Fork no GitHub
      • Fork
    • 11.2 Forks e Pull Requests
      • 11.2.1 Criando um Fork no GitHub
      • 11.2.2 Clonando um Fork
      • 11.2.3 Realizando Alterações Localmente
      • 11.2.4 Enviando Alterações Locais para o Fork Remoto
      • 11.2.5 Criando um Pull Request a partir de um Fork no GitHub
      • 11.2.6 Sincronizando um Fork no GitHub
      • 11.2.7 Revisão, Mesclagem e Atualizações Pós-mesclagem
    • 11.3 Fluxo de Trabalho
  • 11.4 Links Úteis - Capítulo 11
  • 11.5 Glossário - Capítulo 11
  • 12. O Caminho Continua
    • 12.1 Conhecendo Ferramentas Adicionais
      • 12.1.1 Indicação: Jogo Oh My Git
    • 12.2 Explorando Projetos Open Source
    • 12.3 Crescendo e Colaborando em Comunidades
    • 12.4 Desafio: GitCaos 🔥
    • 12.5 Links Úteis - Capítulo 12
    • 12.6 Glossário Completo: Git e GitHub para Humanos
Fornecido por GitBook
Nesta página
  • Como Funciona
  • Estrutura
  • Exemplo de Uso
  • Exemplo 1: git diff arquivo
  • Exemplo 2: git diff

Isto foi útil?

Editar no GitHub
Exportar como PDF
  1. 3. Operações Locais Básicas no Git
  2. 3.2 Salvando Alterações Localmente

3.2.5 Comparando Alterações via `git diff`

Como Funciona

O comando git diff é usado para mostrar as diferenças entre o estado atual do seu repositório e o último commit. Ele é útil para visualizar as alterações feitas nos arquivos antes de criar um novo commit.

No terminal, o output do git diff apresentará as diferenças de forma clara. Cada alteração será mostrada com um prefixo indicando se é uma adição +, uma remoção -, ou uma modificação *.

Estrutura

Esta é a estrutura base do comando git diff que iremos utilizar neste momento

git diff [arquivo]

Em que:

  • git diff: Este é o comando principal que invoca a ferramenta de diferenciação do Git.

  • [arquivo] (opcional): Este é um argumento opcional que especifica o arquivo específico para o qual você deseja ver as diferenças. Se nenhum arquivo for especificado, o git diff mostrará as diferenças de todos os arquivos modificados em relação ao último commit.

Exemplo de Uso

Exemplo 1: git diff arquivo

Suponha que o arquivo index.html originalmente tinha o seguinte conteúdo:

<!DOCTYPE html>
<html>
<head>
    <title>Meu Site</title>
</head>
<body>
    <!-- Conteúdo do site -->
</body>
</html>

Agora, você fez algumas alterações nesse arquivo. Por exemplo, você modificou o título do site. O arquivo index.html modificado ficou assim:

<!DOCTYPE html>
<html>
<head>
    <title>Meu Novo Site</title>
</head>
<body>
    <!-- Conteúdo do site -->
</body>
</html>

Ao executar o comando git diff index.html, o output no terminal mostrará as diferenças entre o estado atual do arquivo index.html e o último commit. Ele indicará que o título do site foi alterado de "Meu Site" para "Meu Novo Site", destacando essa mudança no código:

diff --git a/index.html b/index.html
index abcdef1..1234567 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
 <html>
 <head>
-    <title>Meu Site</title>
+    <title>Meu Novo Site</title>
 </head>
 <body>

Em que:

  1. Diff do arquivo index.html:

    diff --git a/index.html b/index.html

    Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/index.html (o arquivo original) e b/index.html (o arquivo modificado).

  2. Cabeçalho de Mudança::

    index abcdef1..1234567 100644
    --- a/index.html
    +++ b/index.html

    Este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.

  3. Linha de Mudança:

    @@ -1,5 +1,5 @@

    Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -1,5 indica que a mudança começa na linha 1 do arquivo original (a/index.html) e afeta 5 linhas. +1,5 indica que a mudança começa na linha 1 do arquivo modificado (b/index.html) e também afeta 5 linhas.

  4. Alterações Específicas:

    -    <title>Meu Site</title>
    +    <title>Meu Novo Site</title>

    Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo. A linha original <title>Meu Site</title> foi removida (indicada pelo sinal -). Em seu lugar, foi adicionada a linha <title>Meu Novo Site</title> (indicada pelo sinal +).

Exemplo 2: git diff

Para visualizar as diferenças em todos os arquivos modificados, basta utilizar o comando git diff sem nenhum argumento. Dessa forma, o Git apresentará todas as alterações realizadas em todos os arquivos do repositório, oferecendo uma visão abrangente das mudanças efetuadas, sem focar em um arquivo específico, ao contrário do comando git diff arquivo.

Conteúdo Original dos Arquivos:

index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Meu Site</title>
</head>
<body>
    <!-- Conteúdo do site -->
</body>
</html>

style.css:

body {
    font-family: Arial, sans-serif;
    background-color: #f0f0f0;
}

Conteúdo Modificado dos Arquivos:

index.html:

<!DOCTYPE html>
<html>
<head>
    <title>Meu Novo Site</title>
</head>
<body>
    <!-- Conteúdo do site -->
</body>
</html>

style.css:

body {
    font-family: Arial, sans-serif;
    background-color: #ffffff; /* Alteração de cor de fundo */
}

Ao executar o comando git diff, o output no terminal mostrará as diferenças entre o estado atual dos arquivos e o último commit. Ele indicará as alterações feitas em ambos os arquivos:

diff --git a/index.html b/index.html
index abcdef1..1234567 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html>
 <html>
 <head>
-    <title>Meu Site</title>
+    <title>Meu Novo Site</title>
 </head>
 <body>

diff --git a/style.css b/style.css
index abcdef1..1234567 100644
--- a/style.css
+++ b/style.css
@@ -2,4 +2,4 @@
     font-family: Arial, sans-serif;
     background-color: #f0f0f0;
 }

+body {
+    background-color: #ffffff; /* Alteração de cor de fundo */
+}

Em que:

  1. Diff do arquivo index.html:

    diff --git a/index.html b/index.html

    Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/index.html (o arquivo original) e b/index.html (o arquivo modificado).

  2. Cabeçalho de Mudança:

    index abcdef1..1234567 100644
    --- a/index.html
    +++ b/index.html

    Este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.

  3. Linha de Mudança:

    @@ -1,5 +1,5 @@

    Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -1,5 indica que a mudança começa na linha 1 do arquivo original (a/index.html) e afeta 5 linhas. +1,5 indica que a mudança começa na linha 1 do arquivo modificado (b/index.html) e também afeta 5 linhas.

  4. Alterações Específicas:

    -    <title>Meu Site</title>
    +    <title>Meu Novo Site</title>

    Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo. A linha original <title>Meu Site</title> foi removida (indicada pelo sinal -). Em seu lugar, foi adicionada a linha <title>Meu Novo Site</title> (indicada pelo sinal +).

  5. Diff do arquivo style.css:

    diff --git a/style.css b/style.css

    Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/style.css (o arquivo original) e b/style.css (o arquivo modificado).

  6. Cabeçalho de Mudança:

    index abcdef1..1234567 100644
    --- a/style.css
    +++ b/style.css

    Assim como no arquivo index.html, este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.

  7. Linha de Mudança:

    @@ -2,4 +2,4 @@

    Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -2,4 indica que a mudança começa na linha 2 do arquivo original (a/style.css) e afeta 4 linhas. +2,4 indica que a mudança começa na linha 2 do arquivo modificado (b/style.css) e também afeta 4 linhas.

  8. Alterações Específicas:

    +body {
    +    background-color: #ffffff; /* Alteração de cor de fundo */
    +}

    Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo. Linhas com + indicam adições ou modificações no arquivo modificado (b/style.css). Neste caso, houve uma adição de estilo para alterar a cor de fundo do corpo da página para #ffffff.

Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando gitdiff, consulte a documentação oficial.

Anterior3.2.4 Visualizando o Histórico do Repositório via `git log`Próximo3.2.6 Unindo os Pontos

Atualizado há 1 ano

Isto foi útil?