introdução ao git - semac 2016
TRANSCRIPT
![Page 1: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/1.jpg)
Introdução ao Git
![Page 2: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/2.jpg)
1. Quem sou eu?
$ git config user.name "Victor Hugo Souza" $ git config user.email "[email protected]" $ git config user.github "/vhbsouza" $ git config user.work "Accurate Software Ltda." $ git config user.skills "Java, Ruby, PHP, Angular, Git"
![Page 3: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/3.jpg)
2. Agenda
![Page 4: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/4.jpg)
3. O que é o Git?
![Page 5: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/5.jpg)
3.1 Controle de Versão
![Page 6: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/6.jpg)
3.1.1 Sistema de Controle de Versão Local
![Page 7: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/7.jpg)
Como trabalhar em equipe se a ferramenta é pra usolocal?
![Page 8: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/8.jpg)
3.1.2 Sistema de Controle de VersãoCentralizado
![Page 9: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/9.jpg)
Ponto único de falha já que qualquer problema noservidor, perde‐se tudo!
![Page 10: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/10.jpg)
3.1.3 Sistema de Controle de VersãoDescentralizado
![Page 11: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/11.jpg)
Cada cliente possui uma cópia completa dorepositório!
![Page 12: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/12.jpg)
3.2 História do
![Page 13: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/13.jpg)
Eu sou um desgraçado egocêntrico, então batizotodos os meus projetos com meu nome. PrimeiroLinux, agora Git.
-- Linus Torvalds
““
![Page 14: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/14.jpg)
2005
![Page 15: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/15.jpg)
3.3 Principais Caracterís�cas
![Page 16: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/16.jpg)
3.3.1 Snapshots ao invés de patches
Patches (Lista de Mudanças entre arquivos)
![Page 17: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/17.jpg)
3.3.1 Snapshots ao invés de patches
Snapshots ("Foto" do repositório inteiro)
![Page 18: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/18.jpg)
3.3.2 Maioria das operações sãolocais
Sem LOCK em arquivos
Sem necessidade de rede para: COMMITS, LOG, DIFF
![Page 19: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/19.jpg)
3.3.3 Git integridade dos dados
Checksum ‐ Hash SHA‐1 24b9da6552252987aa493b52f8696cd6d3b00373
![Page 20: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/20.jpg)
3.3.4 Os Três Estados
Estado Área Descrição
Modified WorkingDirectory
Arquivo modi�cado queainda não foi consolidado
Staged StagingArea
Arquivo modi�cado que éselecionado para próx.
consolidação "Commit"
Commited HEAD
GitDirectory
Arquivos consolidados"commitados" no
Repositório
![Page 21: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/21.jpg)
3.3.4 Os Três Estados
![Page 22: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/22.jpg)
3.4 Vantagens e DesvantagensVantagens DesvantagensRápido Maior complexidade
Independência (Descentralizado)
Maior necessidade deestudo para um uso efetivo
Rami�cações
![Page 23: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/23.jpg)
Tech Talk: Linus Torvalds on git
![Page 24: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/24.jpg)
4. Instalação
![Page 27: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/27.jpg)
4.3 Linux Debian/Ubuntu
$ sudo apt-get install git
Fedora$ dnf install git
ArchLinux$ pacman -S git
Demais distros ...https://git-scm.com/download/linux
![Page 28: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/28.jpg)
4.3.1 Auto Completar
$ cd ~ $ wget "https://goo.gl/hhzDgN" -O ".git-completion.bash" $ echo "source ~/.git-completion.bash" >> .bashrc
![Page 30: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/30.jpg)
Adeus enviar código por
![Page 31: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/31.jpg)
5.1 Criar Conta
5.2 Criar Repositório
![Page 32: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/32.jpg)
5.3 Adicionar chave SSH no Github$ ls -al ~/.ssh $ ssh-keygen -t rsa -b 4096 -C "[email protected]" $ eval "$(ssh-agent -s)" $ ssh-add ~/.ssh/id_rsa $ sudo apt-get install xclip $ xclip -sel clip < ~/.ssh/id_rsa.pub
Inserir em Se�ngs > SSH and GPG keys > AddSSH key
![Page 34: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/34.jpg)
6. Git Básico
![Page 35: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/35.jpg)
6.0 Ajuda$ git help [comando]
ex.: git help init
![Page 36: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/36.jpg)
6.1 Configurar Git$ git config [options]
.gitconfig
![Page 37: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/37.jpg)
6.1.1 Configurar Usuário$ git config --global user.name "Linus Torvalds" $ git config --global user.name "[email protected]"
6.1.2 Cache ‐ Login$ git config --global credential.helper cache $ git config --global credential.helper \ 'cache --timeout=7200'
Adicione --global para de�nir escopo decon�guração à nível de usuário.
![Page 38: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/38.jpg)
6.1.3 Configurar MERGETOOL$ git config --global merge.tool meld
6.1.3 Verificar configuração$ git config --global user.name > Victor Hugo Souza
![Page 39: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/39.jpg)
6.1.3 Listar Configurações$ git config --list user.name=Victor Hugo Souza [email protected] merge.tool=meld credential.helper=cache --timeout=36000 log.decorate=short color.ui=auto color.interactive=auto color.diff=auto color.branch=auto color.status=auto pager.show-branch=true format.numbered=auto push.default=simple
--global também pode ser adicionado aqui.
![Page 40: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/40.jpg)
6.2 Criar RepositórioInicia repositório git dentro do diretório
$ git init
.git
![Page 41: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/41.jpg)
6.3 Clonar RepositórioFaz cópia do repositório
$ git clone [options][url_do_repositorio] [diretorio]
HTTPS ou SSH
![Page 42: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/42.jpg)
6.3 git clone [op�ons] [diretorio]Opção Descrição--branch
Clona a partir de branch especí�ca
--depth
Clona até um nivel de "profundidade" nohistórico do repositório
Se não for especi�cado diretório ele utilizará opadrão
![Page 43: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/43.jpg)
6.4 AddAdiciona arquivos para próximo snapshot(commit)
$ git add [options] <pathspec>
![Page 44: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/44.jpg)
6.4 git add [op�ons] <pathspec>
git add trabalho_*.c
Opção Descrição-n, --dry-run
Simula o que aconteceria se o comandofosse executado
-p, --patch
Adiciona interativamente trechos de um arquivo
-A, --all git add *
Working Directory Staging Area
![Page 45: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/45.jpg)
6.5 CommitConsolida dados selecionados para o repositório
$ git commit [options] <pathspec>
![Page 46: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/46.jpg)
6.5 git commit [op�ons] <pathspec>Opção Descrição-m, --message
Mensagem obrigatória
--amend Recuperar ultimo commit
-p, --patch
Adiciona interativamente trechos de um arquivo
-A, --all git commit
Staging Area Git Directory
![Page 47: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/47.jpg)
6.6 TagsReferências a pontos importantes do projeto
git tag
git tag -a v1.4 -m 'my version 1.4'
![Page 48: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/48.jpg)
6.7 StatusLista arquivos modificados em relação a ul�ma versão
$ git status [options] <pathspec>
![Page 49: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/49.jpg)
6.7 git status [op�ons] <pathspec>Opção Descrição-s, --short
Versão resumida do git status
--ignored
Exibe arquivos ignorados
-vvExibe a diferença de conteúdo entre osarquivos
![Page 50: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/50.jpg)
6.8 LogLista histórico de modificações consolidadas
"commitadas" do projeto
$ git log [options]
![Page 51: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/51.jpg)
6.8 git log [op�ons]Opção Descrição-n <limit> Limita numero de commits
-p <limit> Exibe diff do commit
--oneline Versão condensada do histórico
--statLista quais arquivos e nro delinhas alteradas
--author="<name>"
Lista commits por autor
$ git log --graph --decorate --oneline
![Page 52: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/52.jpg)
6.9 DiffExibe diferença entre versões dos arquivos
$ git diff [options]
git diff 1234a 987d2
![Page 53: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/53.jpg)
6.9 git diff [op�ons]
$ git diff diff --git a/benchmarks.rb b/benchmarks.rb index 3cb747f..da65585 100644 --- a/benchmarks.rb +++ b/benchmarks.rb @@ -36,6 +36,10 @@ def main @commit.parents[0].parents[0].parents[0] end + run_code(x, 'commits 1') do + git.commits.size+ end + run_code(x, 'commits 2') do log = git.commits('master', 15) log.size
![Page 54: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/54.jpg)
6.10 StashSalva modificações em andamento em um rascunho
git stash [options] [config]
git stash apply stash@{0}
![Page 55: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/55.jpg)
6.10 git stash [op�ons] [config]Opção Descriçãolist Lista rascunhos disponiveis
show Exibe conteúdo de rascunho selecionado
save Salva modi�cações em novo rascunho
applyExibe a diferença de conteúdo entre osarquivos
branchCria rami�cação com conteúdo dorascunho
clear Remove todos os rascunhos
![Page 56: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/56.jpg)
6.10 git stash [op�ons] [config]Config Descrição-u Incluir arquivos não monitorados
--all Inclui arquivos ignorados no rascunho
--patch
Escolhe interativamente trechos que irãopara o rascunho
![Page 57: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/57.jpg)
6.10 git stash [op�ons] [config]
Tracked Files
Untracked Files
IgnoredFiles
git stash
git stash u
git stash a
git stash options
![Page 58: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/58.jpg)
6.11 Ignorando ArquivosAdicione um arquivo .gitignore para definir o que será
ignorado pelo git.
![Page 59: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/59.jpg)
6.11 Ignorando Arquivos# Este é um comentário build/ #diretório *.[oa] # ignora terminados em .o ou .a # mas rastreie lib.a, mesmo que você tenha ignorado # arquivos terminados em .a acima !lib.a *.class *.exe doc/*.txt
Ignorando arquivo já versionado:
git rm --cached [nome_arquivo]
![Page 60: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/60.jpg)
6.12 BranchRamificações que permitem modificações independentes
git branch
git branch <name>
git branch -d <name>
git branch -m <new-name>
git checkout -b <new-name>
![Page 61: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/61.jpg)
6.12 Branch
![Page 62: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/62.jpg)
6.13 Ciclo de Vida
![Page 63: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/63.jpg)
6.13 Ciclo de Vida
![Page 64: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/64.jpg)
7. Desfazendo modificações
![Page 65: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/65.jpg)
7.1 CheckoutDescartando alterações da Working Directory
$ git checkout -- <nome_arquivo>
git checkout 123ade
git checkout 452eac trabalho.c
![Page 66: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/66.jpg)
7.2 ResetDescartando alterações reescrevendo histórico
$ git reset HEAD <nome_arquivo>
![Page 67: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/67.jpg)
7.2 git reset <commit> [op�ons]Op�ons Descrição
--hardDesfaz alterações descartando WorkingDirectory
--softDesfaz alterações preservandomodi�cações
--patchEscolhe interativamente trechos queirão para o rascunho
![Page 68: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/68.jpg)
7.3 RevertDescartando alterações sem remover histórico
(patching)
$ git revert <commit> [options]
![Page 69: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/69.jpg)
7.3.1 Revert vs Reset
![Page 70: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/70.jpg)
8. Colaboração
![Page 71: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/71.jpg)
8.1 RemoteAdiciona repositorio remoto ao projeto
git remote add <name> <url>
git remote rm <name>
git remote rename <old-name> <new-name>
![Page 72: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/72.jpg)
8.2 FetchImporta commits de repositório remoto para local
git fetch <remote>
git fetch <remote> <branch>
![Page 73: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/73.jpg)
8.3 MergeMesclando commits
git merge <remote>/<branch>
![Page 74: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/74.jpg)
8.3 Merge <master> <outro>$ git checkout master
$ git merge origin/outro
![Page 75: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/75.jpg)
8.4 PullFetch + Merge
git pull <remote>
git pull <remote> <branch>
git pull --rebase <remote>
![Page 76: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/76.jpg)
8.4 Pull
![Page 77: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/77.jpg)
8.4 Pull
![Page 78: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/78.jpg)
8.4 Pull
![Page 79: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/79.jpg)
8.5 PushEnviando commits para repositório remoto
git push -u <remote> <branch>
git push origin v1.5
git push origin --tags
git push :<branch-name>
![Page 80: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/80.jpg)
8.6 Ciclo de Vida ‐ Remote
![Page 82: Introdução ao Git - Semac 2016](https://reader034.vdocuments.com.br/reader034/viewer/2022052318/58730bbb1a28ab99088b6ce5/html5/thumbnails/82.jpg)
Obrigado