Git e Github
Thiago Sousa
Por que o Git Existe
e Quando Ele é
Usado
Entendendo o controle de versão e sua
importância no desenvolvimento de
software
O que é controle de versão
Objetivo Por que o Git surgiu
do Quando e como ele é usado em projetos reais
módulo: Os principais termos e comandos do Git
A diferença entre usar Git no terminal e na
interface gráfica
O que é Controle de Versão?
Controle de versão é o processo de gerenciar as alterações feitas
em um projeto ao longo do tempo.
Exemplo:
Salvar todas as versões de um arquivo sem sobrescrevê-las
Saber quem fez uma mudança, quando e por quê
Ferramentas: Git, GitHub, GitLab, Bitbucket
O Problema Clássico
Imagine isso:
projeto_v1.doc
projeto_v1_final.doc
projeto_v1_final_versao_certa_agora_sim.doc
Com Git:
Tudo é registrado em uma linha do tempo
Você pode voltar no tempo e recuperar qualquer versão
O problema: duas pessoas
mexendo no mesmo arquivo ao
mesmo tempo
Colaboração Sem Git: difícil saber quem
alterou o quê
em Equipe Com Git: sistema identifica os
conflitos e ajuda a resolvê-los
Git permite múltiplas pessoas
colaborarem sem bagunça
Versionamento Local vs Remoto
Local Remoto
Sua máquina Um servidor (ex: GitHub)
Trabalha offline Compartilha com a equipe
commit push, pull
Linha do Tempo do Projeto
Git registra tudo em uma timeline (linha do tempo)
Cada commit é um ponto da linha
Dá pra “voltar no tempo” com comandos como checkout ou revert
Útil para:
Corrigir bugs
Entender mudanças
Revisar o histórico do projeto
Termos Técnicos do Git
Termo Significado
commit Salvar uma mudança
push Enviar mudanças para o repositório remoto
pull Baixar mudanças do remoto
merge Unir duas versões
branch Linha paralela de desenvolvimento
clone Copiar um repositório
fork Fazer uma cópia pessoal de um repositório
pull request Pedir para suas mudanças serem revisadas
origin Nome padrão do repositório remoto
HEAD Ponto atual na linha do tempo
stash Guardar mudanças temporariamente
Fluxo simples para por um repositório local
no repositório remoto.
Git init
Git remote add origin <endereço do repositório remoto>
Git status – verifica as possíveis alterações /atividades na aplicação
Git Add .
Git Commit –m “mensagem do commit”
Git Status
Git Push Origin Main
Terminal (CLI):
Terminal • Mais rápido
vs • Mais controle
• Funciona em qualquer lugar
Interface
Interface Gráfica (GUI):
Gráfica
• Mais visual
• Menos comandos
• Aprender no terminal primeiro dá mais
poder e confiança!
Falar um pouco sobre interface
gráfica:
Interface de usuário (UI) é qualquer
meio pelo qual uma pessoa interage
com um sistema, software ou
dispositivo.
Alguns tipos: (CLI, GUI, TUI, NUI, VUI,
BCI).
são formas diferentes de interação.
Vou te explicar cada uma:
1. CLI (Command 2. GUI (Graphical
Line Interface) User Interface)
Interface de Linha Interface Gráfica de
Usuário.
de Comando.
Algumas O usuário digita
Usa janelas, ícones,
botões, menus visuais
interfaces: comandos em um — é o que usamos em
terminal ou console sistemas como
Windows, macOS e
(como o Prompt de apps de celular.
Comando ou o
Exemplo: clicar em
Terminal Linux). uma pasta para abri-
Exemplo: ls, cd, la.
mkdir no terminal.
Algumas 3. TUI (Text User
Interface)
4. NUI (Natural User
Interface)
interfaces: Interface de Usuário de Interface Natural de
Texto (mas ainda Usuário.
Algumas visual). Você interage de forma
natural: com gestos,
Usa apenas texto, mas
interfaces: de forma organizada em toques, movimentos.
"telas" com menus e Exemplo: usar as
caixas de texto. mãos para controlar
um jogo no Kinect, ou
Exemplo: instaladores
deslizar o dedo no
antigos de programas ou
sistemas de banco de celular.
dados em tela preta
organizados por texto.
Algumas 5. VUI (Voice User Interface)
interfaces: Interface de Voz do Usuário.
Você fala, e o sistema entende comandos de
voz.
Exemplo: Siri, Alexa, Google Assistant.
Algumas 6. BCI (Brain-Computer Interface)
interfaces: Interface Cérebro-Computador.
Conexão direta entre o cérebro e o
computador, sem usar músculos.
Exemplo: tecnologias experimentais para
controlar máquinas com o pensamento (muito
usada em pesquisas médicas).
Github: O Git Na
Nuvem
Usando o GitHub como repositório
remoto e colaborando em projetos
online
Objetivo da Aula:
Nesta aula, você vai aprender:
Como criar e usar repositórios no GitHub
Como conectar seu projeto local ao repositório remoto
Como trabalhar com push, pull, branches, forks e pull requests
Como contribuir com projetos open-source
Criando uma Conta no GitHub
Acesse: [Link]
Use um e-mail válido
Crie um nome de usuário e senha
Dica: Use um nome profissional (ex: thiago-dev, [Link], etc.)
Criando um Repositório Remoto
[Link] em New Repository
2.Dê um nome ao projeto (ex: meu-projeto)
[Link]:
Descrição (opcional, mas importante)
Arquivo [Link] (explica o projeto)
.gitignore (para ignorar arquivos desnecessários)
Conectando Git Local ao GitHub
[Link] seu projeto local:
git init
[Link] o repositório remoto:
git remote add origin [Link]
[Link] o projeto:
git push -u origin main
O -u conecta sua branch local à branch remota
Clonando Repositórios
Quer pegar um projeto que já está no GitHub?
git clone [Link]
Isso cria uma cópia local do projeto e já configura o remoto
Problemas comuns:
Git status
Git Reset
Git Reset
Git Clean -df
Git Checkout --.
Problemas comuns:
Esq
:wq
Enter
Esq
:q.
enter
Problemas comuns:
Git Status,
Git Reset--soft head~1
Git reset --hard <código do commit>
Git status
Git Reset--hard Head~1
Para manter seu repositório local
atualizado com o remoto:
git pull: baixa e aplica as
Atualizando mudanças
git fetch: só baixa, não aplica
seu Projeto Use fetch se quiser revisar antes
de mesclar
Por que usar branches?
Simular várias linhas de
desenvolvimento sem
impactar o código principal.
Facilita o trabalho em equipe.
Evita conflitos e perda de
código.
Possibilita testar novas
funcionalidades sem quebrar
o projeto.
O que é uma branch?
Linha paralela de desenvolvimento no
seu repositório.
A branch principal geralmente se
chama main ou master.
Novas features ou correções são
feitas em outras branches.
A B C
Criando e gerenciando branches
git branch nome-da-branch # cria uma nova branch
git checkout nome-da-branch # troca para a branch
git checkout -b nome-da-branch # cria e troca para a branch
git branch # lista as branches
git branch -d nome-da-branch # deleta branch local
Fluxo típico em equipe
[Link] sua branch a partir da main
[Link] a funcionalidade
[Link]ça commits e push
[Link] um Pull Request (PR) no GitHub
[Link] a revisão e o merge
O que é um Pull Request?
Solicitação de merge da sua branch para a main
Permite revisão de código por outros membros
Pode incluir comentários, aprovações ou pedidos de alteração
Regras de convivência com Git
Cada membro trabalha em uma branch separada
Commits pequenos e frequentes
Sempre dar pull antes de começar
Nomear branches com clareza: feature/login, fix/bug-header, etc.
Revisão de código obrigatória antes de dar merge
Evitar commits diretamente na main
Como lidar com conflitos?
Acontecem quando duas branches alteram a mesma linha
Devem ser resolvidos manualmente
Use git pull e git merge com frequência para evitar acúmulo
Exemplo:
git checkout main
git pull
git checkout minha-branch
git merge main # resolver conflitos aqui
Conclusão:
Resumo:
Branches são essenciais para trabalho em equipe
O uso correto evita bugs e retrabalho
GitHub facilita a colaboração com ferramentas como PRs e Issues
Praticar é o melhor caminho para entender
Fork vs Clone
Fork Clone
Cópia no GitHub Cópia local
Permite contribuir em
Serve para usar o projeto
repositórios de terceiros
Fork é o caminho para contribuir com projetos open-source
Após fazer um fork, alterações e push...
1.Vá até o repositório original
[Link] em Pull Request
Pull Request [Link] o que mudou
(PR) [Link] revisão
Ideal para contribuir com projetos grandes,
colaborativos e open-source
Procedimento pull request:
Git pull origin main
Git checkout ft-login
Git merge main
Git push –u origin ft-login
Procedimento Pull Request
Fluxo de Contribuição Open-Source
[Link] o repositório original
[Link] para sua máquina
[Link] uma branch para a mudança
[Link]ça commits
[Link] com push
[Link] um Pull Request
Dica: Sempre atualize com o pull antes de enviar mudanças
Exercício Prático
Passo a passo:
[Link] um repositório no GitHub
[Link] ou conectar seu projeto local
[Link] um [Link] e um .gitignore
[Link] commit e push
[Link] uma branch com uma modificação
[Link] um Pull Request