Criar Repositório e versionar Código com Git e Github
🚀 Aula Completa: Git e GitHub para Iniciantes (Do Zero à Entrega do Projeto)
Módulo 1: Entendendo o Conceito de Versionamento
💡 O que é Git?
O Git é um Sistema de Controle de Versão Distribuído (DVCS). Pense nele como uma máquina do tempo superpoderosa para o seu código.
- Para que serve? Ele registra todas as modificações que você faz em seus arquivos ao longo do tempo.
- Vantagem Principal: Você pode voltar a qualquer versão anterior do seu projeto, descobrir quem fez qual alteração e quando. Essencial para trabalhar em equipe e para a segurança dos seus projetos.
🌐 O que é GitHub?
O GitHub é a plataforma de hospedagem mais popular para repositórios Git.
- Para que serve? É a "nuvem" onde seu projeto Git é armazenado. Ele permite que você:
- Compartilhe seu código publicamente (como um portfólio).
- Colabore com outras pessoas.
- Faça backup seguro do seu projeto.
- Relação Git vs. GitHub: Git é a ferramenta que você instala e usa no seu computador. GitHub é o serviço online que armazena cópias do seu projeto Git.
Módulo 2: Instalação e Configuração do Git
💻 2.1. Instalação do Git em Diferentes Sistemas Operacionais
🪟 Windows:
- Acesse o site oficial:
https://git-scm.com/downloads. - Clique no ícone do Windows para baixar o instalador mais recente.
- Execute o arquivo baixado (
.exe). - Na maioria das telas de instalação, você pode simplesmente clicar em "Next" (Próximo) e manter as configurações padrão, pois elas são adequadas para iniciantes.
- Opcional, mas recomendado: Marque a opção para usar o Git a partir do Prompt de Comando ou PowerShell.
- Ao final, clique em "Finish" (Concluir).
🍎 macOS:
- Opção mais fácil: O Git geralmente já vem instalado com as ferramentas de linha de comando do Xcode. Abra o Terminal e digite
git --version. Se não estiver instalado, o sistema operacional pode pedir para instalá-lo automaticamente. - Instalador alternativo: Você também pode usar o instalador do site oficial (o mesmo do Windows) ou o gerenciador de pacotes Homebrew (se já o tiver instalado):
- Bash
brew install git
🐧 Linux (Distribuições Baseadas em Debian, como Ubuntu):
- Abra o Terminal (Ctrl+Alt+T).
- Atualize a lista de pacotes:
- Bash
sudo apt update
- Instale o Git:
- Bash
sudo apt install git
✅ 2.2. Verificação da Instalação
Após a instalação, abra o Terminal (Linux/Mac) ou o Git Bash (Windows, um terminal que vem com a instalação do Git) e digite:
Bash
git --version
Se a instalação foi bem-sucedida, você verá a versão do Git instalada (ex: git version 2.42.0).
✍️ 2.3. Configuração Inicial (Sua "Assinatura")
Antes de começar a usar o Git, você precisa informar seu nome e e-mail. Essa informação será anexada a todos os seus commits (salvamentos) e é crucial para identificar quem fez as alterações.
- Configurando seu Nome (Use o nome que deseja que apareça no GitHub):
- Bash
git config --global user.name "Seu Nome Completo"
- Configurando seu E-mail (Use o mesmo e-mail que usará no GitHub):
- Bash
git config --global user.email "seuemail@exemplo.com"
Importante: O parâmetro --global significa que essa configuração será usada em todos os seus projetos Git nesse computador.Módulo 3: Seus Primeiros Passos com Git
📁 3.1. Organização de Pastas
Para qualquer projeto, a organização é chave. Crie uma pasta raiz para o seu projeto, onde estarão todos os seus arquivos de código, imagens, documentos, etc.
- Exemplo de Estrutura:
MeuProjetoDeEntrega/
├── index.html
├── style.css
├── script.js
└── imagens/
└── logo.png
🎯 3.2. Os Comandos Principais do Git
Vamos usar o Terminal/Git Bash para estes exemplos.
Passo 1: Inicializar o Repositório Local
Vá para a pasta raiz do seu projeto (no Terminal) e inicie o Git nela.
Bash
# Navegue até a pasta do seu projeto
cd /caminho/para/MeuProjetoDeEntrega
# Inicialize o repositório Git
git init
- O que isso faz? Cria uma pasta oculta chamada
.gitdentro do seu projeto. É ali que o Git vai guardar todo o histórico de versões. Sua pasta de projeto agora é um Repositório Git Local.
Passo 2: Verificar o Status
A qualquer momento, você pode ver o que o Git está rastreando ou não.
Bash
git status
- O que ele mostra? No início, ele listará seus arquivos de projeto em vermelho, indicando que eles estão "não rastreados" (untracked).
Passo 3: Adicionar Arquivos para Rastreamento (Staging Area)
Antes de salvar uma versão, você precisa dizer ao Git quais arquivos você quer incluir nesse salvamento. Chamamos isso de adicionar à Staging Area (Área de Preparação).
Bash
# Adicionar um arquivo específico:
git add index.html
# ADICIONAR TODOS os arquivos novos e modificados:
git add .
- O que isso faz? Move os arquivos da área "Não Rastreada" para a Staging Area. Se você rodar
git statusagora, os arquivos estarão em verde, prontos para o commit.
Passo 4: Fazer o Commit (Salvar a Versão)
O commit é o "salvamento" de uma versão. Ele registra o instantâneo dos arquivos que estão na Staging Area.
Bash
git commit -m "Mensagem clara e objetiva do que foi feito"
- Exemplo prático:
- Bash
git commit -m "Criacao da estrutura basica HTML e CSS inicial"
- O que isso faz? Salva o instantâneo (a versão) do seu projeto no repositório local. A mensagem (
-m) é crucial para que você e outros saibam o que foi feito.
Passo 5: Visualizar o Histórico
Para ver todos os commits que você já fez, use:
Bash
git log
- O que ele mostra? Uma lista cronológica de commits, mostrando o hash (código de identificação), o autor, a data e a mensagem.
- Para sair da visualização do
git log, pressione a teclaQ.
Módulo 4: Usando o GitHub (A "Nuvem" do seu Projeto)
Agora que você sabe o básico do Git no seu PC, é hora de colocá-lo na nuvem!
👤 4.1. Criando sua Conta no GitHub
- Acesse
https://github.com/. - Clique em "Sign up" (Cadastrar-se) e siga as instruções para criar sua conta gratuita.
- Escolha um Nome de Usuário memorável e profissional.
- Use o mesmo e-mail que você configurou no Git (
git config --global user.email ...).
📦 4.2. Criando um Novo Repositório Remoto
O repositório remoto é o local de armazenamento na nuvem.
- Faça login no GitHub.
- No canto superior direito, clique no ícone
+e selecione "New repository" (Novo repositório). - Repository name (Nome do Repositório): Use um nome que reflita seu projeto (ex:
projeto-site-pessoal,entrega-modulo-1). Use hífens (-) em vez de espaços. - Description (Descrição): Opcional, mas altamente recomendado (ex: "Primeira entrega do curso de Web Design").
- Public/Private (Público/Privado):
- Público (Public): Qualquer pessoa pode ver seu código. Escolha essa opção para projetos de entrega/portfólio.
- Privado (Private): Só você e as pessoas que você convidar podem ver.
- Não marque a opção "Add a README file" se você já tem um projeto local.
- Clique em "Create repository" (Criar repositório).
🔗 4.3. Conectando o Repositório Local ao Remoto
Após criar o repositório no GitHub, a tela seguinte mostrará instruções. Vamos usar os comandos da seção "...ou faça push de um repositório existente a partir da linha de comando".
Passo 1: Adicionar o Repositório Remoto
Você precisa dizer ao seu Git local onde o repositório remoto está. O nome origin é uma convenção para o repositório principal.
Bash
# Substitua o link pelo link do SEU repositório que o GitHub forneceu (começa com https://)
git remote add origin https://github.com/SEU_USUARIO/SEU_REPOSITORIO.git
Passo 2: Definir o nome da Branch Principal
Por padrão, o Git usa master, mas o GitHub usa main. Altere sua branch local para corresponder ao remoto:
Bash
git branch -M main
Passo 3: Enviar (Push) o Projeto para o GitHub
Este é o comando que pega todos os seus commits locais e os envia para o GitHub.
Bash
git push -u origin main
- Você provavelmente será solicitado a fazer login na sua conta GitHub (use seu nome de usuário e senha/Token de Acesso Pessoal).
- O que isso faz? O código do seu projeto local agora está na nuvem.
Módulo 5: Seu Fluxo de Trabalho Diário (Repetindo o Ciclo)
O desenvolvimento de software é um ciclo contínuo. Você fará alterações, salvará no Git e enviará para o GitHub.
AçãoComandoExplicação1. Fazer Alterações(Edite seus arquivos de código)Crie um novo arquivo, corrija um bug, adicione uma funcionalidade.2. Verificar Statusgit statusVeja quais arquivos foram modificados.3. Preparargit add .Mova todas as alterações para a Staging Area.4. Salvar (Commit)git commit -m "Nova feature de menu responsivo"Crie um novo ponto de salvamento na história.5. Enviar (Push)git push origin mainEnvie o novo commit para o GitHub (o remoto).
Dica de Ouro: Faça commits pequenos e frequentes com mensagens claras. É melhor ter 10 commits com mensagens específicas ("Correção de typo no README", "Ajuste de margem no CSS") do que um único commit gigante no final.
Módulo 6: O Link de Entrega (A Missão Final)
O objetivo principal, para a sua escola, é obter o link que comprova o seu trabalho.
📋 6.1. Como Obter o Link do Repositório
- Vá para a página do seu projeto no GitHub (ex:
https://github.com/SEU_USUARIO/SEU_REPOSITORIO). - Certifique-se de que seus arquivos estão lá (você deve ver
index.html,style.css, etc.). - Copie a URL completa da barra de endereço do seu navegador.
Exemplo do Link que deve ser colado: https://github.com/seu-usuario/nome-do-seu-projeto🎉 Conclusão: Você Está Afiado(a)!
Parabéns! Você acaba de dominar os conceitos e as ferramentas que são o padrão da indústria para versionamento de código. Você sabe instalar o Git, salvar versões de forma inteligente, usar a plataforma GitHub e, o mais importante, obter o link do seu trabalho para as entregas!
⚔️ Guia Rápido: Lidando com Conflitos de Merge no Git
1. Entendendo o Conflito de Merge
O que é?
Um conflito de merge acontece quando duas ou mais alterações no código modificam a mesma linha no mesmo arquivo em diferentes branches (ramificações) ou por diferentes pessoas.
O Git é inteligente, mas não consegue decidir qual alteração deve prevalecer. Quando isso ocorre, ele para a operação de merge ou pull e pede que você, o desenvolvedor, resolva manualmente.
Cenário Comum de Conflito:
- João altera a linha 10 do arquivo
style.cssparacolor: blue;. - Maria (ou você em outra branch) altera a mesma linha 10 do arquivo
style.cssparacolor: red;. - Quando o Git tenta juntar o trabalho de João e Maria, ele encontra um conflito.
2. Como o Conflito se Apresenta
Quando você tenta fazer um git pull ou git merge e ocorre um conflito, o Git informa:
Auto-merging [nome-do-arquivo]
CONFLICT (content): Merge conflict in [nome-do-arquivo]
Automatic merge failed; fix conflicts and then commit the result.
O arquivo em conflito ficará marcado com delimitadores especiais. É aqui que você precisa intervir com seu editor de código.
Exemplo em um Arquivo (Ex: index.html):
HTML
<p class="intro">
<<<<<<< HEAD
Esta é a versao que está na branch atual (main ou outra).
=======
Esta é a versao que veio do merge (branch feature/nova-funcionalidade).
>>>>>>> feature/nova-funcionalidade
</p>
Os delimitadores que você precisa procurar são:
<<<<<<< HEAD: Marca o início do conflito. O código abaixo disso é a sua versão (o que está na sua branch atual, que geralmente é amain).=======: Serve como separador entre as duas versões conflitantes.>>>>>>> [nome-da-branch]: Marca o final da outra versão (a versão que você está tentando trazer).
3. Os Passos para Resolver um Conflito
Siga este procedimento passo a passo no seu Terminal/Git Bash e no seu editor de código:
Passo 1: Abrir o Arquivo Conflitante
Abra o arquivo que o Git indicou como tendo conflito (você também pode ver quais são rodando git status).
Passo 2: Editar e Decidir
Dentro do arquivo, você deve remover todos os delimitadores (<<<<<<< HEAD, =======, >>>>>>> ...) e manter APENAS o código final que você deseja.
Escolha 1: Manter APENAS a sua versão (HEAD):
HTML
<p class="intro">
Esta é a versao que está na branch atual (main ou outra).
</p>
Escolha 2: Manter APENAS a versão que está entrando:
HTML
<p class="intro">
Esta é a versao que veio do merge (branch feature/nova-funcionalidade).
</p>
Escolha 3: Combinar as duas versões (o mais comum):
HTML
<p class="intro">
Esta é a versao final combinada e correta.
</p>
Dica: Muitos editores de código (VS Code, Sublime Text) têm ferramentas visuais que facilitam a aceitação de "Incoming" (Versão Entrando) ou "Current" (Sua Versão) com um clique.
Passo 3: Marcar o Conflito como Resolvido
Depois de editar o arquivo, salvá-lo e remover todos os delimitadores de conflito, você precisa informar ao Git que o conflito foi resolvido.
Bash
# Adicione o(s) arquivo(s) resolvido(s) à Staging Area
git add [nome-do-arquivo-resolvido]
# Exemplo: git add index.html
Se você tiver vários arquivos em conflito, adicione-os um por um, ou todos de uma vez: git add .
Passo 4: Finalizar o Commit de Merge
Como a operação de merge foi interrompida, você deve finalizá-la com um commit especial de merge.
Bash
git commit
- O que acontece? O Git abrirá um editor de texto (pode ser o
nanoouvimno Terminal) com uma mensagem de commit pré-preenchida (ex:Merge branch 'feature/nova-funcionalidade'). - O que fazer? Você pode simplesmente salvar e fechar (o padrão é excelente), ou editar a mensagem para incluir a nota "Conflitos resolvidos manualmente".
Uma vez que você salva e fecha o editor de commit, o merge está completo e o conflito foi resolvido!
4. O Comportamento dos Comandos
ComandoAntes do ConflitoSe Ocorrer Conflitogit pullBaixa e faz merge das alterações remotas.Para, exige que você resolva, e depois finalize com git commit.git merge [branch]Faz a fusão das branches.Para, exige que você resolva, e depois finalize com git commit.
Com esse guia, você tem a estrutura necessária para enfrentar e resolver conflitos de merge com confiança!
O que são Branches e como usá-las
Perfeito! O conceito de Branches é o que realmente permite que o Git brilhe, especialmente em projetos maiores ou quando se trabalha em equipe.
Aqui está um mini-guia completo sobre o que são as ramificações e como usá-las para desenvolver funcionalidades com segurança.
🌳 Mini-Guia Avançado: Dominando Branches (Ramificações)
1. O que são Branches?
Pense em uma branch (ramificação) como uma linha de desenvolvimento independente do seu projeto.
- A Branch Principal (
mainoumaster): É a linha de código principal e estável. Idealmente, o código aqui deve sempre estar pronto para ser entregue ou implantado. - Branches de Funcionalidade (
feature): São linhas temporárias que você cria para adicionar uma nova funcionalidade, corrigir um bug, ou experimentar algo novo, sem afetar o código principal.
Analogia: Imagine amaincomo a rua principal onde o trânsito flui. Umabranché uma rua lateral onde você pode construir uma casa (nova funcionalidade). Se a casa der certo, você a anexa à rua principal. Se der errado, você simplesmente demole a casa na rua lateral sem atrapalhar o trânsito.
2. O Fluxo de Trabalho Básico com Branches
O fluxo padrão, recomendado para qualquer projeto, segue estes 4 passos: Criar → Trabalhar → Mesclar → Excluir.
Passo 1: Criar uma Nova Branch
Antes de iniciar qualquer trabalho novo, crie uma branch e mude para ela.
a) Criar a Branch
Bash
git branch nome-da-nova-branch
Exemplo:
Bash
git branch feature/cadastro-de-usuarios
O que faz? Cria um novo ponteiro (a branch) que aponta para o seu último commit na branch atual.
b) Mudar para a Nova Branch (Checkout)
Você precisa "entrar" na nova linha de desenvolvimento para começar a trabalhar nela.
Bash
git checkout nome-da-nova-branch
Exemplo:
Bash
git checkout feature/cadastro-de-usuarios
O que faz? Altera o seu diretório de trabalho para usar o código daquela branch.
Comando Combinado (Mais Rápido): Você pode criar e mudar para a branch de uma vez só usando a flag -b:Bash
git checkout -b feature/cadastro-de-usuarios
Passo 2: Trabalhar e Commitar
Dentro da sua nova branch, você trabalha normalmente.
- Faça alterações no código (crie arquivos, edite, etc.).
- Salve as alterações usando o fluxo que já aprendeu:
- Bash
git add .
git commit -m "Implementacao do formulario de cadastro inicial"
O que faz? Os commits são salvos apenas na branch feature/cadastro-de-usuarios. A branch main não é alterada.
Passo 3: Voltar para a Branch Principal e Mesclar (Merge)
Quando o trabalho na sua branch de funcionalidade estiver completo, testado e pronto para ser integrado ao projeto principal:
a) Volte para a Branch Principal
Bash
git checkout main
O que faz? Seu diretório de trabalho volta para o estado do último commit da main. (Você pode notar que o novo código da funcionalidade sumiu temporariamente, pois ele está na outra branch.)
b) Mescle a Nova Branch na Principal
Bash
git merge feature/cadastro-de-usuarios
O que faz? O Git pega todos os commits da branch de funcionalidade e os aplica sequencialmente na branch main.
- Se houver conflitos: Você precisará resolvê-los usando o processo do guia anterior.
- Se não houver conflitos: A fusão é feita automaticamente.
Passo 4: Excluir a Branch (Limpeza)
Uma vez que a funcionalidade foi mesclada com sucesso na main, a branch temporária não é mais necessária.
Bash
# Excluir a branch localmente
git branch -d feature/cadastro-de-usuarios
O que faz? Remove o ponteiro da branch, mantendo o histórico de commits intacto dentro da main.
Dica: Use o-D(maiúsculo) em vez de-d(minúsculo) se o Git se recusar a excluir a branch porque ela ainda não foi mesclada.
3. Comandos Úteis Adicionais
ComandoDescriçãogit branchLista todas as branches locais. A branch atual é marcada com um asterisco (*).git branch -rLista todas as branches remotas (no GitHub).git branch -aLista todas as branches (locais e remotas).git push origin -d nome-da-branchExclui uma branch remota no GitHub (após mesclar).
Com o uso de branches, você pode trabalhar em diversas funcionalidades ao mesmo tempo, sem quebrar o código principal, e até mesmo começar a usar o recurso de Pull Requests (ou Merge Requests) no GitHub para revisão de código.




Obrigado, Keite!
Preparei porque tinha muitos amigos em um bootcamp que estou (Neo4j) com dificuldades de entregar os projetos que devem ser exclusivamente ancorados em repositórios do github!
KF
Muito útil. Gostei, parabéns pelo trabalho.