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 Git - Semcomp 2013
Search
Erich Kist
October 10, 2013
Programming
0
88
Workshop Git - Semcomp 2013
Workshop de Git durante a Semana da Computação na USP São Carlos.
Erich Kist
October 10, 2013
Tweet
Share
More Decks by Erich Kist
See All by Erich Kist
Debugging techniques in Elixir - ElixirConf 2016
erichkist
21
2.2k
Other Decks in Programming
See All in Programming
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
460
Haze - Real time background blurring
chrisbanes
1
510
KubeCon + CloudNativeCon NA 2024 Overviewat Kubernetes Meetup Tokyo #68 / amsy810_k8sjp68
masayaaoyama
0
250
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
330
良いユニットテストを書こう
mototakatsu
8
2.6k
テストケースの名前はどうつけるべきか?
orgachem
PRO
0
140
短期間での新規プロダクト開発における「コスパの良い」Goのテスト戦略」 / kamakura.go
n3xem
2
170
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
3
480
ドメインイベント増えすぎ問題
h0r15h0
2
340
103 Early Hints
sugi_0000
1
230
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
800
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
BBQ
matthewcrist
85
9.4k
Optimizing for Happiness
mojombo
376
70k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Cult of Friendly URLs
andyhume
78
6.1k
The Language of Interfaces
destraynor
154
24k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7k
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/