Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Workshop de Git
Search
Andriel Nuernberg
October 11, 2013
Programming
0
60
Workshop de Git
Apresentado na SEMCOMP 2013 - USP São Carlos
Andriel Nuernberg
October 11, 2013
Tweet
Share
More Decks by Andriel Nuernberg
See All by Andriel Nuernberg
Criando pacotes Debian do Ruby
andrielfn
0
45
Other Decks in Programming
See All in Programming
生成AIコーディングとの向き合い方、AIと共創するという考え方 / How to deal with generative AI coding and the concept of co-creating with AI
seike460
PRO
1
350
Porting a visionOS App to Android XR
akkeylab
0
230
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
550
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
0
310
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
50
13k
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
120
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
技術同人誌をMCP Serverにしてみた
74th
1
590
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
3
3.9k
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
220
Rubyでやりたい駆動開発 / Ruby driven development
chobishiba
1
590
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
580
Featured
See All Featured
Writing Fast Ruby
sferik
628
62k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
It's Worth the Effort
3n
185
28k
4 Signs Your Business is Dying
shpigford
184
22k
Speed Design
sergeychernyshev
32
1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
46
9.6k
A designer walks into a library…
pauljervisheath
207
24k
Making Projects Easy
brettharned
116
6.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
GitHub's CSS Performance
jonrohan
1031
460k
Designing for humans not robots
tammielis
253
25k
Transcript
your best friend Workshop de Git
© Plataformatec 2013 @andrielfn e @erichkist
None
© Plataformatec 2013
© Plataformatec 2013 plataformatec/devise
© Plataformatec 2013 plataformatec/simple_form
© Plataformatec 2013 elixir-lang/elixir
© Plataformatec 2013
© Plataformatec 2013 http://guidelines.plataformatec.com.br
© Plataformatec 2013 We <3 Git
Conhece o Git? Já usou controle de versão?
http://www.flickr.com/photos/slworking/4516918054
http://www.flickr.com/photos/slworking/4516918054 Trabalho de conclusão do Semestre
http://www.flickr.com/photos/slworking/4516918054 Tudo funcionando! \o/
http://www.flickr.com/photos/slworking/4516918054 Acho que consigo melhorar este algoritmo!
http://www.flickr.com/photos/slworking/4516918054 Challenge accepted!
http://www.flickr.com/photos/slworking/4516918054 3 horas depois...
http://www.flickr.com/photos/slworking/4516918054 É, acho que não funcionou.
http://www.flickr.com/photos/slworking/4516918054 Ctrl + Z
http://www.flickr.com/photos/slworking/4516918054 Nada funcionando...
http://www.flickr.com/photos/slworking/4516918054 Ctrl + Z
http://www.flickr.com/photos/slworking/4516918054 Ctrl + Z, ..., Ctrl + Z
http://www.flickr.com/photos/slworking/4516918054 Nada funcionando.
http://www.flickr.com/photos/mrtea/528580604 Chega o dia da entrega e...
http://www.showmyhomeworkblog.com/ten-reasons-students-dont-homework/
http://www.flickr.com/photos/slworking/4516918054 Eu sou um cara precavido!
© Plataformatec 2013
http://www.flickr.com/photos/slworking/4516918054 Quem já passou por isso? Ou sabe de alguém?
© Plataformatec 2013 Este problema é facilmente resolvido usando-se Controle
de Versão.
© Plataformatec 2013 O que iremos ver hoje História Primeiros
passos Estrutura e Workflow Repositório Remoto
Controle de versão
© Plataformatec 2013 "é um software com a finalidade de
gerenciar diferentes versões no desenvolvimento de um documento qualquer" (Wikipedia) http://pt.wikipedia.org/wiki/Sistema_de_controle_de_vers%C3%A3o
História do Git
© Plataformatec 2013 Linux Kernel
© Plataformatec 2013 Início 3 de Abril de 2005 http://marc.info/?l=git&m=117254154130732
© Plataformatec 2013 Anúncio 6 de Abril de 2005 http://marc.info/?l=linux-kernel&m=111280216717070
© Plataformatec 2013 7 de Abril de 2005 http://marc.info/?l=git&m=117254154130732
© Plataformatec 2013 Kernel no GIT https://github.com/torvalds/linux/commit/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
© Plataformatec 2013 Kernel no GIT https://github.com/torvalds/linux/commit/1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 3.2G, +17K arquivos!!!
Primeiros passos
© Plataformatec 2013 Vamos criar um livro!
© Plataformatec 2013 Criar diretório, trackear o diretório com o
Git e criar arquivos
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Dizendo ao Git para trackear o arquivo
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Vamos editar o nosso Capítulo 1
© Plataformatec 2013 OK Git! Como está o status disso?
© Plataformatec 2013
© Plataformatec 2013 Mais detalhes!! O que eu alterei?
© Plataformatec 2013
© Plataformatec 2013 Vamos adicionar nossas mudanças no Git
© Plataformatec 2013
© Plataformatec 2013 Está bom! Vamos fazer o primeiro commit.
© Plataformatec 2013
© Plataformatec 2013 Config? User? E-mail?
Configurações
© Plataformatec 2013 System Global Local
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 https://gist.github.com/erichkist/ 6912324
Estrutura de um commit
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Snapshot, commit, SHA1, tree, blob..
© Plataformatec 2013 Existe muito mais para se entender do
Git. Dever de casa!
Mais alguns comandos
© Plataformatec 2013 Vamos fazer mais algumas alterações em nosso
Capítulo 1 e criar o arquivo de Índice.
© Plataformatec 2013
© Plataformatec 2013 Adicionar cada arquivo novamente, OK!
© Plataformatec 2013 E se eu tiver +17K de arquivos
para commitar?
© Plataformatec 2013
© Plataformatec 2013 E se eu não quiser trackear um
dos arquivos?
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Deixa eu ver o que eu tenho
de alteração!
© Plataformatec 2013
© Plataformatec 2013 Cada as minhas alterações?
© Plataformatec 2013
© Plataformatec 2013 OK, vamos commitar todos os arquivos
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Revisando...
© Plataformatec 2013 Revisando... git init
© Plataformatec 2013 Revisando... git init git add <file>
© Plataformatec 2013 Revisando... git init git add <file> git
add <dir>
© Plataformatec 2013 Revisando... git init git add <file> git
status git add <dir>
© Plataformatec 2013 Revisando... git init git add <file> git
add <dir> git commit -m ‘mensagem’ git status
© Plataformatec 2013 Revisando...
© Plataformatec 2013 Revisando... git log
© Plataformatec 2013 Revisando... git log git show
© Plataformatec 2013 Revisando... git log git show git diff
(--cached)
© Plataformatec 2013 Revisando... git log git reset HEAD <file>
git show git diff (--cached)
© Plataformatec 2013 Revisando... git log git reset HEAD <file>
git show git diff (--cached)
git log
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
gitignore
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
Estados do Git
© Plataformatec 2013
© Plataformatec 2013 Untracked Unmodified Modified Stage criar CAPITULO_1.TXT
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1
© Plataformatec 2013 CAPITULO_1 Untracked Unmodified Modified Stage $ git
add CAPITULO_1.TXT
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1 $ git
commit -m “mensagem”
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1 criar INDICE.txt
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1
© Plataformatec 2013 INDICE Untracked Unmodified Modified Stage CAPITULO_1 editar
CAPITULO_1.txt
© Plataformatec 2013 Untracked Unmodified Modified Stage CAPITULO_1 INDICE
© Plataformatec 2013 CAPITULO_1 INDICE Untracked Unmodified Modified Stage $
git add CAPITULO_1.txt
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1
© Plataformatec 2013 INDICE Untracked Unmodified Modified Stage CAPITULO_1 editar
CAPITULO_1.txt
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1 CAPITULO_1
© Plataformatec 2013 INDICE Untracked Unmodified Modified Stage CAPITULO_1 CAPITULO_1
$ git add CAPITULO_1.txt
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1 $
git commit -m “mensagem”
© Plataformatec 2013 Untracked Unmodified Modified Stage INDICE CAPITULO_1
Workflow de trabalho Branches, Rebases e Merges
© Plataformatec 2013 Branch, o que é? https://twitter.com/pornelski/status/316190292443267073
© Plataformatec 2013 Branches são ramificações do seu código. Como
você possui snapshots pode-se criar alterações de qualquer ponto!
© Plataformatec 2013 Como vejo a branch que estou? Como
crio? Como altero?
© Plataformatec 2013 Vamos lá!
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Vamos mudar para a branch nova
© Plataformatec 2013
© Plataformatec 2013 Criar o segundo Capítulo
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Nosso editor pediu alterações
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Alterações feitas. Vamos continuar nosso Capítulo 2
© Plataformatec 2013
© Plataformatec 2013 As alterações no Índice estarão aqui?
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 REBASE Destrutivo: Histórico pode ser modificado
© Plataformatec 2013 REBASE Feito na branch filha com a
branch pai
© Plataformatec 2013 Vamos voltar ao estado (snapshot) que tinhamos
antes
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 MERGE Não Destrutivo
© Plataformatec 2013 MERGE Cria sempre um commit de merge
© Plataformatec 2013 Vamos atualizar o nosso Índice e commitar.
© Plataformatec 2013
© Plataformatec 2013 Terminado o Capítulo 2 vamos mergear com
o master
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Vamos limpar nossas branches
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Revisando... git branch
© Plataformatec 2013 Revisando... git branch git checkout
© Plataformatec 2013 Revisando... git branch git checkout git commit
-am ‘mensagem’
© Plataformatec 2013 Revisando... git branch git checkout git commit
-am ‘mensagem’ git rebase
© Plataformatec 2013 Revisando... git branch git checkout git commit
-am ‘mensagem’ git merge git rebase
© Plataformatec 2013 Já sei commitar e trabalhar com branches.
Como compartilho meu código?
Repositório remoto
© Plataformatec 2013 file ssh http PROTOCOLOS
© Plataformatec 2013 http://www.flickr.com/photos/funkblogjob/2964231880/sizes/l/
© Plataformatec 2013 http://github.com
© Plataformatec 2013 Vamos criar as contas e configurar chave
pública!
© Plataformatec 2013 https://help.github.com/articles/generating-ssh-keys
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Vamos criar o capítulo 3 com feature
branch
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Enviando nossa branch para o repositório remoto
© Plataformatec 2013
© Plataformatec 2013
Pull Request
© Plataformatec 2013 Trabalhar em equipe
© Plataformatec 2013 Abrindo Pull Request
© Plataformatec 2013 # Modo 1
© Plataformatec 2013
© Plataformatec 2013 # Modo 2
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Comunicando as mudanças
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Vamos mergear nossso capítulo via GitHub!
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
Praticando Open Source
© Plataformatec 2013 Forkar projeto
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Clonar o projeto
© Plataformatec 2013
© Plataformatec 2013 Vamos criar o capítulo 4
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Enviando nossa branch para o repositório remoto
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Aceitando o Pull Request
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
Resolvendo conflitos
© Plataformatec 2013 Vamos criar o capítulo 5
© Plataformatec 2013
© Plataformatec 2013 Nosso editor pediu alterações, OK!
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Como ficou as nossas branches?
© Plataformatec 2013
© Plataformatec 2013 Capítulo 5 está fechado. Vamos juntar ao
master.
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Ops!! Conflito?
© Plataformatec 2013 Vamos ver o nosso status
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Fácil, não?
© Plataformatec 2013 Me diz mais coisas legais aê!
Mais coisas do GIT...
© Plataformatec 2013 $ git commit --amend
© Plataformatec 2013 $ git blame
© Plataformatec 2013 Hooks do Git
GitHub e você!
© Plataformatec 2013
© Plataformatec 2013 https://github.com/edu
© Plataformatec 2013 Existem outras opções https://codeplane.com.br/
© Plataformatec 2013 Existem outras opções https://bitbucket.org/
© Plataformatec 2013 Existem outras opções http://www.codebasehq.com/
Próximos passos
© Plataformatec 2013 Be a master! http://octodex.github.com/dojocat/
© Plataformatec 2013 http://thkoch2001.github.io/whygitisbetter/
© Plataformatec 2013 http://try.github.io
© Plataformatec 2013 http://try.github.io
© Plataformatec 2013 http://www.akitaonrails.com/2012/04/09/screencasts-liberados-gratuitamente
© Plataformatec 2013 http://pcottle.github.io/learnGitBranching/
Além do Git e GitHub
© Plataformatec 2013 GitHub não é apenas um repositório de
códigos!
© Plataformatec 2013 GitHub is the best place to share
code with friends, co-workers, classmates, and complete strangers. Over four million people use GitHub to build amazing things together.
© Plataformatec 2013 Trocar conhecimento
© Plataformatec 2013
© Plataformatec 2013 Cuidar do código
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013
© Plataformatec 2013 Comunicação
© Plataformatec 2013 https://github.com/mojombo/jekyll/pull/583
© Plataformatec 2013 Pessoas em primeiro lugar!
© Plataformatec 2013 Seja cordial!
© Plataformatec 2013 Obrigado! http://octodex.github.com/ironcat/