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
  • Clonar um Repositório
  • Entrar na Pasta do Projeto
  • Verificar o Status
  • Ver Histórico de Commits com git log
  • Modificar um Arquivo
  • Verificar Diferenças
  • Verificar o Status
  • Adicionar o Arquivo
  • Verificar o Status
  • Fazer Commit
  • Verificar o Status
  • Ver Histórico de Commits com git log
  • Fazer o Push
  • Verificar o Status
  • Ver Histórico de Commits com git log
  • Buscar Mudanças Remotas (fetch)
  • Verificar Qual foi a Mudança
  • Mesclar Mudança
  • Ver Histórico de Commits com git log
  • Buscar e Mesclar Mudanças Remotas (pull)
  • Ver Histórico de Commits com git log

Isto foi útil?

Editar no GitHub
Exportar como PDF
  1. 9. Git Remoto
  2. 9.2 Interagindo com o Repositório Remoto Central no Git

9.2.6 Exemplo

Clonar um Repositório

Um repositório hipotético é clonado com o comando git clone.

git clone https://github.com/exemplo/repo.git
▶ Cloning into 'repo'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 10 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), done.

Este comando cria uma cópia local do repositório remoto. As mensagens indicam o progresso do clone, incluindo a contagem e compressão de objetos.

Entrar na Pasta do Projeto

Entra-se na pasta do projeto.

cd repo

Verificar o Status

Utiliza-se git status para ver o estado atual do diretório de trabalho e da área de stage.

git status
▶ On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

Mostra-se que o repositório local está atualizado com o repositório remoto, e que não há mudanças a serem comitadas.

Ver Histórico de Commits com git log

Utiliza-se git log para ver o histórico de commits.

git log
▶ commit 0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (HEAD -> main, origin/main)
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 11:00:00 2024 -0300

    Commit anterior feito por outra pessoa

Exibe-se o histórico de commits, mostrando detalhes como o autor, data, e a mensagem do commit.

Modificar um Arquivo

Modifica-se um arquivo hipotético chamado arquivo.txt.

echo Nova linha de conteúdo >> arquivo.txt

Este comando adiciona uma nova linha ao arquivo arquivo.txt.

Verificar Diferenças

Utiliza-se git diff para verificar as diferenças.

git diff
▶ diff --git a/arquivo.txt b/arquivo.txt
index e69de29..d95f3ad 100644
--- a/arquivo.txt
+++ b/arquivo.txt
@@ -0,0 +1 @@
+Nova linha de conteúdo

Mostra-se as diferenças entre o estado atual do arquivo e o último commit. Indica que arquivo.txt teve uma linha adicionada.

Verificar o Status

Utiliza-se git status para ver o estado atual do diretório de trabalho e da área de stage.

git status
▶ On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   arquivo.txt

no changes added to commit (use "git add" and/or "git commit -a")

Indica-se que arquivo.txt foi modificado, mas ainda não foi adicionado à área de stage.

Adicionar o Arquivo

Utiliza-se git add arquivo.txt para adicionar o arquivo ao stage.

git add arquivo.txt

Adiciona-se arquivo.txt à área de stage, preparando-o para o commit.

Verificar o Status

Utiliza-se git status para ver o estado atual do diretório de trabalho e da área de stage.

git status
▶ On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   arquivo.txt

Mostra-se que arquivo.txt está preparado para ser commitado.

Fazer Commit

Utiliza-se git commit -m "Adiciona nova linha em arquivo.txt" para salvar as mudanças.

git commit -m "Adiciona nova linha em arquivo.txt"
▶ [main 1a2b3c4] Adiciona nova linha em arquivo.txt
 1 file changed, 1 insertion(+)

Cria-se um novo commit com a mensagem descritiva "Adiciona nova linha em arquivo.txt", indicando que 1 arquivo foi alterado com 1 inserção.

Verificar o Status

Utiliza-se git status para verificar o estado após o commit.

git status
▶ On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

Indica-se que o repositório local está 1 commit à frente do repositório remoto, e não há mudanças no diretório de trabalho.

Ver Histórico de Commits com git log

Utiliza-se git log para ver o histórico de commits.

git log
▶ commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s (HEAD -> main)
Author: Seu Nome <seu.email@example.com>
Date:   Wed Jun 13 12:34:56 2024 -0300

    Alterando arquivo.txt

commit 0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9 (origin/main)
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 11:00:00 2024 -0300

    Commit anterior feito por outra pessoa

Exibe-se o histórico de commits, mostrando detalhes como o autor, data, e a mensagem do commit.

Fazer o Push

Utiliza-se git push para enviar as mudanças para o repositório remoto.

git push
▶ Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 400 bytes | 400.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/exemplo/repo.git
   e69de29..1a2b3c4  main -> main

Envia-se o commit local para o repositório remoto, atualizando-o com as mudanças locais.

Verificar o Status

Utiliza-se git status para verificar o estado após o push.

git status
▶ On branch main
Your branch is up to date with 'origin/main'.

nothing to commit, working tree clean

Mostra-se que o branch local está atualizado com o branch remoto e não há mudanças no diretório de trabalho.

Ver Histórico de Commits com git log

Utiliza-se git log para ver o histórico de commits novamente.

git log
▶ commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s (HEAD -> main, origin/main)
Author: Seu Nome <seu.email@example.com>
Date:   Wed Jun 13 12:34:56 2024 -0300

    Adiciona nova linha em arquivo.txt

Exibe-se o histórico de commits, mostrando que o commit local foi enviado para o repositório remoto.

Buscar Mudanças Remotas (fetch)

Utiliza-se git fetch para buscar as mudanças do repositório remoto.

git fetch
▶ remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), done.
From https://github.com/exemplo/repo
   1a2b3c4..5e6f7g8  main       -> origin/main

Busca-se as mudanças do repositório remoto sem mesclá-las automaticamente no branch atual.

Verificar Qual foi a Mudança

Utiliza-se git diff HEAD..FETCH_HEAD para ver as diferenças entre o branch local e o branch remoto.

git diff HEAD..FETCH_HEAD
▶ diff --git a/novo-arquivo.txt b/novo-arquivo.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/novo-arquivo.txt
@@ -0,0 +1 @@
+Conteúdo do novo arquivo

Mostra-se as diferenças entre o último commit no branch local e as mudanças buscadas do repositório remoto.

Mesclar Mudança

Utiliza-se git merge FETCH_HEAD para mesclar as mudanças do branch remoto no branch local.

git merge FETCH_HEAD
▶ Updating 1a2b3c4..5e6f7g8
Fast-forward
 novo-arquivo.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 novo-arquivo.txt

Mescla-se as mudanças buscadas do branch remoto no branch local.

Ver Histórico de Commits com git log

Utiliza-se git log para ver o histórico de commits novamente.

git log
▶ commit 5e6f7g8h9i0j1k2l3m4n5o6p7q8r9t0u (HEAD -> main, origin/main)
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 13:00:00 2024 -0300

    Adiciona nova funcionalidade

commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s
Author: Seu Nome <seu.email@example.com>
Date:   Wed Jun 13 12:34:56 2024 -0300

    Adiciona nova linha em arquivo.txt

commit 0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 11:00:00 2024 -0300

    Commit anterior feito por outra pessoa

Buscar e Mesclar Mudanças Remotas (pull)

Novas mudanças foram enviadas para o repositório remoto. Utiliza-se git pull para buscar e mesclar essas novas mudanças remotas em um único comando.

git pull
▶ remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 2 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (2/2), done.
From https://github.com/exemplo/repo
   5e6f7g8..9h0j1k2  main       -> origin/main
Updating 5e6f7g8..9h0j1k2
Fast-forward
 outro-arquivo.txt | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 outro-arquivo.txt

O comando git pull combina git fetch e git merge, buscando e mesclando as mudanças remotas no branch local. A mensagem mostra que o arquivo outro-arquivo.txt foi adicionado no branch remoto e agora foi mesclado no branch local.

Ver Histórico de Commits com git log

Utiliza-se git log para ver o histórico de commits novamente.

git log
▶ commit 9h0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8 (HEAD -> main, origin/main)
Author: Mais Outro Desenvolvedor <mais.outro.email@example.com>
Date:   Wed Jun 13 14:00:00 2024 -0300

    Adiciona outro arquivo

commit 5e6f7g8h9i0j1k2l3m4n5o6p7q8r9t0u
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 13:00:00 2024 -0300

    Adiciona nova funcionalidade

commit 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s
Author: Seu Nome <seu.email@example.com>
Date:   Wed Jun 13 12:34:56 2024 -0300

    Adiciona nova linha em arquivo.txt

commit 0a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9
Author: Outro Desenvolvedor <outro.email@example.com>
Date:   Wed Jun 13 11:00:00 2024 -0300

    Commit anterior feito por outra pessoa

O comando git log mostra o histórico completo de commits no branch atual. Neste caso, exibe três commits: o commit mais recente adicionando outro-arquivo.txt, o commit anterior adicionando uma nova funcionalidade e o commit inicial adicionando uma linha a arquivo.txt.

Anterior9.2.5 Unindo os PontosPróximo9.3 Interagindo com o Repositório Remoto hello-world

Atualizado há 3 meses

Isto foi útil?