Cursando Especialização emDesenvolvimento
de Software com Metodologias Ágeis
Sobre Mim
[2]
Gosta de Compartilhar Conhecimento
Desenvolvedora Front-end
/elidianaandrade @elidianaandrade
Pós-Graduanda em Desenv. de Software
users/elidianaandrade @casalfullstack
Sobre Mim
[4]
We livein a society exquisitely dependent on
science and technology, in which hardly anyone
knows anything about science and technology.
This is a clear prescription for disaster."
SAGAN, C. “Why We Need To Understand Science”. 1990.
The Skeptical Inquirer.
5.
Objetivo Geral
[5]
Introduzir aoversionamento de código com Git e GitHub.
Dicas e Materiais
de Apoio
Primeiros Passos
com Git e GitHub
Conhecer as
ferramentas
Instalar, Configurar
e Autenticar
6.
Computador comacesso à internet
Vontade de aprender
Fechar as outras abas XD
Pré-requisitos
[6]
7.
Percurso
Visão Geraldo Curso e Ferramentas
Instalação, Configuração e Autenticação
Primeiros Passos com Git e GitHub
Dicas e Materiais de Apoio
[7]
8.
Visão Geral doCurso e
Ferramentas
Versionamento de Código, Git e GitHub
9.
O que éVersionamento
de Código?
[9]
zapzap-v1.zip
zapzap-v1.zip
10.
zapzap-ARRUMEI.zip
O que éVersionamento
de Código?
[10]
zapzap-v17.zip
zapzap-ARRUMEI.zip
zapzap-ARRUMAAI.zip
...
Sistemas de Controlede Versão
[12]
Registra o histórico de atualizações de um arquivo;
Organização, controle e segurança.
Gerencia quais foram as alterações, a data, autor, etc.;
Controlam as versões de um arquivo ao longo do tempo.
13.
VCS Centralizado (CVCS)
Ex.:CVS, Subversion.
[13]
Tipos de Sistemas de Controle
de Versão
Dentre os Sistemas de Controle de Versão (VCS), temos:
VCS Distribuído (DVCS)
Ex.: Git, Mercurial.
Cada clone écomo um backup;
VCS Distribuído (DVCS)
[16]
Possibilidade de trabalhar sem
conexão à rede.
Possibilita um fluxo de trabalho flexível;
Clona o repositório completo, o que inclui o histórico de versões.
17.
{...}
[17]
O que éGit?
Sistema de Controle de Versão Distribuído.
Gratuito e Open Source (Código Aberto);
Leve e rápido.
Ramificações (branching) e fusões (merging) eficientes;
2002 →
[19]
Breve Históricodo Git
2005 →
Após conflitos com a comunidade, o BitKeeper
rescinde a licença gratuita. O que leva a Linus
Torvalds, o criador do Linux, e sua equipe, a
desenvolverem sua própria ferramenta, o Git.
O projeto do núcleo (kernel) do Linux, que é open
source, começa a utilizar o BitKeeper, um DVCS
proprietário;
20.
git clone →clona um repositório Git existente
para um novo diretório (pasta) local.
Fluxo Básico no Git
[20]
Servidor
git clone git clone
Banco de Versões
Versão 1
21.
Fluxo Básico noGit
[21]
Servidor
git clone git clone
git clone → clona um repositório Git existente
para um novo diretório (pasta) local.
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Banco de Versões
Versão 1
22.
Fluxo Básico noGit
[22]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Banco de Versões
Versão 1
git commit → grava alterações no repositório.
23.
Fluxo Básico noGit
[23]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
git commit → grava alterações no repositório.
24.
Fluxo Básico noGit
[24]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
git pull
git pull → “puxa” as alterações do repositório
remoto para o local (busca e mescla).
25.
Fluxo Básico noGit
[25]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
git push
git push → “empurra” as alterações do
repositório local para o remoto.
26.
Banco de Versões
Versão1
Versão 2
Fluxo Básico no Git
[26]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
git push
git push → “empurra” as alterações do
repositório local para o remoto.
27.
Banco de Versões
Versão1
Versão 2
Fluxo Básico no Git
[27]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
28.
git pull →“puxa” as alterações do repositório
remoto para o local (busca e mescla).
Banco de Versões
Versão 1
Versão 2
Fluxo Básico no Git
[28]
Servidor
Banco de Versões
Versão 1
Banco de Versões
Versão 1
Versão 2
git pull
29.
Banco de Versões
Versão1
Versão 2
git pull → “puxa” as alterações do repositório
remoto para o local (busca e mescla).
Banco de Versões
Versão 1
Versão 2
Fluxo Básico no Git
[29]
Servidor
Banco de Versões
Versão 1
Versão 2
git pull
30.
Banco de Versões
Versão1
Versão 2
Fluxo Básico no Git
[30]
Servidor
Banco de Versões
Versão 1
Versão 2
Banco de Versões
Versão 1
Versão 2
2008 →
[32]
Breve Históricodo GitHub
2018 →
Vítima de um dos maiores ataques de DDoS
(ataque distribuído de negação de serviço);
Comprado pela Microsoft Corporation por
US $ 7,5 bilhões.
Desenvolvido por Chris Wanstrath, J. Hyett, Tom
Preston-Werner e Scott Chacon.
33.
Banco de Versões
Versão1
Versão 2
Git ≠ GitHub
[33]
Servidor
Banco de Versões
Versão 1
Versão 2
Banco de Versões
Versão 1
Versão 2
34.
[34]
Autenticação de DoisFatores
1
2
3
Leia o QR Code através do aplicativo autenticador (ex.:
Microsoft Authenticator) e insira o código no GitHub;
Autenticação ativada! ;D
Salve os códigos de recuperação;
Acesse sua conta do GitHub e vá em Settings > Password and
authentication > Two-factor authentication > Authenticator app
[38]
Instalando o Gitno Windows
1
2
3
Acesse < https://git-scm.com/download/win >;
Aceite a licença e clique em “Next”, e siga configurando
como desejar¹ e clicando em “Next”;
Faça o download do instalador e execute;
¹Em "Select Components“, deixe as opções “Git Bash Here” e “Git GUI Here” marcadas.
4 Finalize clicando em “Install”, e “Finish”.
[40]
1
2
Confira a doc.:< https://git-scm.com/download/linux >;
Instale a última versão estável do Git:
Instalando o Git no Linux (Ubuntu)
# add-apt-repository ppa:git-core/ppa
# apt update
# apt install git
[42]
1
2
Confira a doc.:< https://git-scm.com/download/mac>;
Instale o Homebrew: < https://brew.sh/ >;
Instalando o Git no macOS
3 Instale o Git:
$ brew install git
43.
[43]
1
2
Configurando seu nomede usuário e e-mail (globalmente):
Configurando o nome da Branch Padrão:
Configurando o Git
$ git config --list
$ git config --global user.name "Nome Sobrenome"
$ git config --global user.email seuemail@email.com
$ git config --global init.defaultBranch main
44.
[44]
Para gerar umToken, acesse sua conta no GitHub, e no
menu superior direito clique em Settings > Developer
settings > Tokens (classic) > Generate new token.
Autenticando via Token
45.
Você pode armazenarsuas credenciais para reduzir o número
de vezes que você deve digitar seu nome de usuário ou senha:
Salvando no cache:
Ou permanentemente:
Armazenando Credenciais
$ git config --global credential.helper cache
$ git config --global credential.helper store
Veja mais na doc.: https://git-scm.com/book/pt-br/v2/Git-Tools-Credential-Storage
[45]
46.
[46]
Autenticando via ChaveSSH
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.
[48]
Criando e Clonando
Repositórios
Existemduas formas de obter um repositório Git na sua
máquina:
1
Transformando um diretório local que não está sob
controle de versão, num repositório Git;
2 Clonando um repositório Git existente.
49.
Acesse a pastaque deseja transformar em um repositório
Git pelo terminal ou clique no atalho em “Git Bash Here”:
[49]
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
Criando um Repositório Local
50.
[50]
Clonando um Repositório
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
conteúdo copiado para cloná-lo:
$ git clone https://github.com/username/nome-do-repositorio
Para clonar um repositório no Git, acesse seu repositório no
GitHub e siga os próximos passos:
1
2
51.
Acesse a suaconta do GitHub, clique no “+” no canto
superior direito, e em “New repository”:
[51]
1 Insira um nome (obrigatório), e a descrição (opcional);
2
Coloque uma breve descrição sobre o projeto, essa
etapa é opcional;
Criando um Repositório Remoto
3 Defina se o acesso será público ou privado;
52.
Acesse a suaconta do GitHub, clique no “+” no canto
superior direito, e em “New repository”:
[52]
4
Escolha como deseja inicializar seu repositório (se
quiser vazio, deixe as opções desmarcadas)
5 Clique em “Create repository”, e pronto!
Criando um Repositório Remoto
53.
Salvando Alterações no
RepositórioLocal
[53]
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"
1) Como criar um commit:
54.
Desfazendo Alterações
no RepositórioLocal
[54]
$ git commit --amend
1) Como alterar a mensagem do último commit:
$ git commit --amend –m"nova mensagem"
Alterando a mensagem sem abrir o editor:
55.
Desfazendo Alterações
no RepositórioLocal
[55]
$ git reset
2) Como desfazer um commit:
$ git reset --mixed
$ git reset --hard
$ git reset --soft
56.
Enviando Alterações para
oRepositório Remoto
[56]
Como enviar as alterações do repositório local para o remoto:
$ git push
$ git pull
“Puxar” as alterações do repositório remoto para o local
(busca e mescla).
57.
[57]
Trabalhando com Branches
Demaneira 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.
• Deletar umaBranch
• Trocar de Branch e criar uma nova:
[62]
Trabalhando com Branches
$ git branch
$ git checkout -b nova-branch
$ git branch –d nome-da-branch
• Ver o último commit de cada Branch:
$ git branch -v