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.




