Versionamento de Código Com Git e GitHub
Versionamento de Código Com Git e GitHub
✓ Vontade de aprender
[2]
Percurso
❑ Visão Geral do Curso e Ferramentas
[3]
Visão Geral do Curso e
Ferramentas
Versionamento de Código, Git e GitHub
O que é Versionamento
de Código?
zapzap-v1.zip
zapzap-v1.zip
[5]
O que é Versionamento
de Código?
zapzap-ARRUMEI.zip
zapzap-ARRUMAAI.zip
zapzap-ARRUMEI.zip
zapzap-v17.zip
...
[6]
O que é Versionamento
de Código?
[7]
Sistemas de Controle de Versão
Controlam as versões de um arquivo ao longo do tempo.
[8]
Tipos de Sistemas de Controle
de Versão
Dentre os Sistemas de Controle de Versão (VCS), temos:
Servidor Central
Banco de Versões
Versão 3
Arquivo Arquivo
Versão 2
Versão 1
[10]
VCS Distribuído (DVCS)
Servidor
Arquivo Arquivo
Banco de Versões
Banco de Versões Versão 3 Banco de Versões
Versão 1 Versão 1
[11]
VCS Distribuído (DVCS)
Clona o repositório completo, o que inclui o histórico de versões.
Leve e rápido.
[13]
Hands On!
https://git-scm.com/
[14]
Breve Histórico do Git
O projeto do núcleo (kernel) do Linux, que é open
2002 → source, começa a utilizar o BitKeeper, um DVCS
proprietário;
Servidor
Banco de Versões
git clone git clone
Versão 1
[16]
Fluxo Básico no Git
Servidor
Banco de Versões
git clone git clone
Versão 1
Versão 1 Versão 1
git clone → clona um repositório Git existente
para um novo diretório (pasta) local.
[17]
Fluxo Básico no Git
Servidor
Banco de Versões
Versão 1
Versão 1 Versão 1
git commit → grava alterações no repositório.
[18]
Fluxo Básico no Git
Servidor
Banco de Versões
Versão 1
Versão 2 Versão 1
git commit → grava alterações no repositório.
Versão 1
[19]
Fluxo Básico no Git
Servidor
Banco de Versões
git pull
Versão 1
Versão 2 Versão 1
git pull → “puxa” as alterações do repositório
remoto para o local (busca e mescla).
Versão 1
[20]
Fluxo Básico no Git
Servidor
Banco de Versões
git push
Versão 1
Versão 2 Versão 1
Servidor
Banco de Versões
git push
Versão 2
Versão 2 Versão 1
Servidor
Banco de Versões
Versão 2
Versão 2 Versão 1
Versão 1
[23]
Fluxo Básico no Git
Servidor
Banco de Versões
git pull
Versão 2
Versão 2 Versão 1
Servidor
Banco de Versões
git pull
Versão 2
Servidor
Banco de Versões
Versão 2
Versão 1 Versão 1
[26]
O que é GitHub?
Plataforma de hospedagem de código para
controle de versão com Git, e colaboração.
Comunidade ativa;
Utilizado mundialmente;
Mascote “Octocat”.
[27]
Breve Histórico do GitHub
Servidor
Banco de Versões
Versão 2
Versão 1 Versão 1
[29]
Autenticação de Dois Fatores
Acesse sua conta do GitHub e vá em Settings > Password and
authentication > Two-factor authentication > Authenticator app
Leia o QR Code através do aplicativo autenticador (ex.:
1 Microsoft Authenticator) e insira o código no GitHub;
3 Autenticação ativada! ;D
[30]
Hands On!
https://github.com/
[31]
Instalação, Configuração e
Autenticação
Instalando e configurando o Git, e
autenticando o GitHub via Token e Chave SSH
Hands On!
https://git-scm.com/downloads
[33]
Instalando o Git no Windows
1 Acesse < https://git-scm.com/download/win >;
https://git-scm.com/download/win
[35]
Instalando o Git no Linux (Ubuntu)
1 Confira a doc.: < https://git-scm.com/download/linux >;
# apt update
[36]
Hands On!
https://git-scm.com/download/linux
[37]
Instalando o Git no macOS
1 Confira a doc.: < https://git-scm.com/download/mac>;
3 Instale o Git:
$ brew install git
[38]
Configurando o Git
$ git config --list
[40]
Armazenando Credenciais
Você pode armazenar suas credenciais para reduzir o número
de vezes que você deve digitar seu nome de usuário ou senha:
Salvando no cache:
$ git config --global credential.helper cache
Ou permanentemente:
$ git config --global credential.helper store
[42]
Primeiros Passos com
Git e GitHub
Do primeiro repositório à manipulação de
branches
Criando e Clonando
Repositórios
Existem duas formas de obter um repositório Git na sua
máquina:
Transformando um diretório local que não está sob
1 controle de versão, num repositório Git;
2 Clonando um repositório Git existente.
[44]
Criando um Repositório Local
Acesse a pasta que deseja transformar em um repositório
Git pelo terminal ou clique no atalho em “Git Bash Here”:
[48]
Salvando Alterações no
Repositório Local
1) Como criar um commit:
[50]
Desfazendo Alterações
no Repositório Local
2) Como desfazer um commit:
$ git reset
[52]
Trabalhando com Branches
De maneira simplista, uma Branch (em tradução, “Ramo”),
é uma ramificação do seu projeto.
É um ponteiro móvel para um commit no histórico do
repositório;
Quando você cria uma nova Branch a partir de outra
existente, a nova se inicia apontando para o mesmo
commit da Branch que estava quando foi criada.
[53]
Trabalhando com Branches
main
commit 0
[54]
Trabalhando com Branches
main
commit 0 commit 1
[55]
Trabalhando com Branches
main
teste
[56]
Trabalhando com Branches
main
teste
[57]
Trabalhando com Branches
$ git branch
○ https://docs.github.com/
○ https://github.blog/
[60]
Links Úteis
● Referências:
○ https://github.blog/2020-12-15-token-authentication-
requirements-for-git-operations/
○ https://github.blog/2018-03-01-ddos-incident-report/
○ https://news.microsoft.com/2018/06/04/microsoft-to-acquire-
github-for-7-5-billion/
○ https://github.blog/2023-03-09-raising-the-bar-for-software-
security-github-2fa-begins-march-13/
[61]
Para saber mais
● Tech Talk: Linus Torvalds on git: https://youtu.be/4XpnKHJAok8
● ProGit: https://git-scm.com/book/en/v2
● Markdown: https://docs.github.com/pt/get-started/writing-
on-github
● Conventional Commits: https://github.com/conventional-
commits/conventionalcommits.org
[62]
Para saber mais
● Chocolatey: https://community.chocolatey.org/packages/git
● GitHub Desktop: https://desktop.github.com/
● GitFluence: https://gitfluence.com/
● My Octocat: https://myoctocat.com/
● GitHub Pages: https://docs.github.com/en/pages/getting-
started-with-github-pages
[63]
Dúvidas?
> Fórum/Artigos
> Comunidade Online (Discord)
[64]