0% acharam este documento útil (0 voto)
21 visualizações64 páginas

Versionamento de Código Com Git e GitHub

Enviado por

afiuzane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
21 visualizações64 páginas

Versionamento de Código Com Git e GitHub

Enviado por

afiuzane
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 64

Objetivo Geral

Introduzir ao versionamento de código com Git e GitHub.


Instalar, Configurar Dicas e Materiais
e Autenticar de Apoio

Conhecer as Primeiros Passos


ferramentas com Git e GitHub
[1]
Pré-requisitos
✓ Computador com acesso à internet

✓ Vontade de aprender

✓ Fechar as outras abas XD

[2]
Percurso
❑ Visão Geral do Curso e Ferramentas

❑ Instalação, Configuração e Autenticação

❑ Primeiros Passos com Git e GitHub

❑ Dicas e Materiais de Apoio

[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.

Registra o histórico de atualizações de um arquivo;

Gerencia quais foram as alterações, a data, autor, etc.;

Organização, controle e segurança.

[8]
Tipos de Sistemas de Controle
de Versão
Dentre os Sistemas de Controle de Versão (VCS), temos:

VCS Centralizado (CVCS)


Ex.: CVS, Subversion.

VCS Distribuído (DVCS)


Ex.: Git, Mercurial.
[9]
VCS Centralizado (CVCS)

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 3 Versão 2 Versão 3

Versão 2 Versão 1 Versão 2

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.

Cada clone é como um backup;

Possibilita um fluxo de trabalho flexível;


Possibilidade de trabalhar sem
conexão à rede.
[12]
O que é Git?
Sistema de Controle de Versão Distribuído.

{...} Gratuito e Open Source (Código Aberto);

Ramificações (branching) e fusões (merging) eficientes;

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;

Após conflitos com a comunidade, o BitKeeper


rescinde a licença gratuita. O que leva a Linus
2005 →
Torvalds, o criador do Linux, e sua equipe, a
desenvolverem sua própria ferramenta, o Git.
[15]
Fluxo Básico no Git

Servidor

Banco de Versões
git clone git clone
Versão 1

git clone → clona um repositório Git existente


para um novo diretório (pasta) local.

[16]
Fluxo Básico no Git

Servidor

Banco de Versões
git clone git clone
Versão 1

Banco de Versões Banco de Versões

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

Banco de Versões Banco de Versões

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

Banco de Versões Banco de Versões

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

Banco de Versões Banco de Versões

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

Banco de Versões Banco de Versões

Versão 2 Versão 1

Versão 1 git push → “empurra” as alterações do


repositório local para o remoto.
[21]
Fluxo Básico no Git

Servidor

Banco de Versões
git push
Versão 2

Banco de Versões Versão 1 Banco de Versões

Versão 2 Versão 1

Versão 1 git push → “empurra” as alterações do


repositório local para o remoto.
[22]
Fluxo Básico no Git

Servidor

Banco de Versões

Versão 2

Banco de Versões Versão 1 Banco de Versões

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

Banco de Versões Versão 1 Banco de Versões

Versão 2 Versão 1

Versão 1 git pull → “puxa” as alterações do repositório


remoto para o local (busca e mescla).
[24]
Fluxo Básico no Git

Servidor

Banco de Versões
git pull
Versão 2

Banco de Versões Versão 1 Banco de Versões


Versão 2 Versão 2

Versão 1 git pull → “puxa” as alterações do repositório Versão 1


remoto para o local (busca e mescla).
[25]
Fluxo Básico no Git

Servidor

Banco de Versões

Versão 2

Banco de Versões Versão 1 Banco de Versões


Versão 2 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

Desenvolvido por Chris Wanstrath, J. Hyett, Tom


2008 →
Preston-Werner e Scott Chacon.

Vítima de um dos maiores ataques de DDoS


(ataque distribuído de negação de serviço);
2018 →
Comprado pela Microsoft Corporation por
US $ 7,5 bilhões.
[28]
Git ≠ GitHub

Servidor

Banco de Versões

Versão 2

Banco de Versões Versão 1 Banco de Versões


Versão 2 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;

2 Salve os códigos de recuperação;

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 >;

2 Faça o download do instalador e execute;


Aceite a licença e clique em “Next”, e siga configurando
3 como desejar¹ e clicando em “Next”;

4 Finalize clicando em “Install”, e “Finish”.


¹Em "Select Components“, deixe as opções “Git Bash Here” e “Git GUI Here” marcadas.
[34]
Hands On!

https://git-scm.com/download/win

[35]
Instalando o Git no Linux (Ubuntu)
1 Confira a doc.: < https://git-scm.com/download/linux >;

2 Instale a última versão estável do Git:


# add-apt-repository ppa:git-core/ppa

# apt update

# apt install git

[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>;

2 Instale o Homebrew: < https://brew.sh/ >;

3 Instale o Git:
$ brew install git

[38]
Configurando o Git
$ git config --list

1 Configurando seu nome de usuário e e-mail (globalmente):


$ git config --global user.name "Nome Sobrenome"
$ git config --global user.email [email protected]

2 Configurando o nome da Branch Padrão:


$ git config --global init.defaultBranch main
[39]
Autenticando via Token
Para gerar um Token, acesse sua conta no GitHub, e no
menu superior direito clique em Settings > Developer
settings > Tokens (classic) > Generate new token.

[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

Veja mais na doc.: https://git-scm.com/book/pt-br/v2/Git-Tools-Credential-Storage


[41]
Autenticando via Chave SSH
Para adicionar uma Chave SSH, acesse sua conta no
GitHub, e no menu superior direito clique em Settings
> SSH and GPG keys > New SSH key.

[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”:

1 Inicialize um repositório Git no diretório escolhido:


$ git init

2 Conecte o repositório local com o repositório remoto:


$ git remote add origin
https://github.com/username/nome-do-repositorio.git
[45]
Clonando um Repositório
Para clonar um repositório no Git, acesse seu repositório no
GitHub e siga os próximos passos:

1 Em “Code”, copie o código HTTPS ou SSH (a depender de


como autenticou sua conta) do repositório no GitHub;
Abra o GitBash, insira o comando git clone e cole o
2 conteúdo copiado para cloná-lo:
$ git clone https://github.com/username/nome-do-repositorio
[46]
Criando um Repositório Remoto
Acesse a sua conta do GitHub, clique no “+” no canto
superior direito, e em “New repository”:

1 Insira um nome (obrigatório), e a descrição (opcional);


Coloque uma breve descrição sobre o projeto, essa
2 etapa é opcional;
3 Defina se o acesso será público ou privado;
[47]
Criando um Repositório Remoto
Acesse a sua conta do GitHub, clique no “+” no canto
superior direito, e em “New repository”:
Escolha como deseja inicializar seu repositório (se
4 quiser vazio, deixe as opções desmarcadas)
5 Clique em “Create repository”, e pronto!

[48]
Salvando Alterações no
Repositório Local
1) Como criar um commit:

1 Adicione o conteúdo que deseja inserir no commit:


$ git add

2 Crie um commit e adicione uma mensagem descritiva:


$ git commit -m "message"
[49]
Desfazendo Alterações
no Repositório Local
1) Como alterar a mensagem do último commit:
$ git commit --amend

Alterando a mensagem sem abrir o editor:


$ git commit --amend –m"nova mensagem"

[50]
Desfazendo Alterações
no Repositório Local
2) Como desfazer um commit:
$ git reset

$ git reset --soft

$ git reset --mixed

$ git reset --hard


[51]
Enviando Alterações para
o Repositório Remoto
Como enviar as alterações do repositório local para o remoto:
$ git push

“Puxar” as alterações do repositório remoto para o local


(busca e mescla).
$ git pull

[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

commit 0 commit 1 commit 2

teste

[56]
Trabalhando com Branches
main

commit 0 commit 1 commit 2 commit 3

teste

[57]
Trabalhando com Branches
$ git branch

• Trocar de Branch e criar uma nova:


$ git checkout -b nova-branch

• Deletar uma Branch


$ git branch –d nome-da-branch

• Ver o último commit de cada Branch:


$ git branch -v
[58]
Dicas e Materiais de Apoio
Links Úteis e Para Saber Mais
Links Úteis
● Repositório no GitHub
● Documentação Git | Documentação GitHub
● Referências:
○ https://git-scm.com/

○ 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]

Você também pode gostar