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
86
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
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
24k
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
1
290
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
600
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.7k
cmp.Or に感動した
otakakot
2
150
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
subpath importsで始めるモック生活
10tera
0
300
ローコードSaaSのUXを向上させるためのTypeScript
taro28
1
610
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.5k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
16
2.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Site-Speed That Sticks
csswizardry
0
23
Teambox: Starting and Learning
jrom
133
8.8k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
Docker and Python
trallard
40
3.1k
Making Projects Easy
brettharned
115
5.9k
[RailsConf 2023] Rails as a piece of cake
palkan
52
4.9k
What's new in Ruby 2.0
geeforr
343
31k
Designing for humans not robots
tammielis
250
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/