You are on page 1of 20

IntroduoaoGIT

IntroduoaoGit
AndersonMoreira

Copyright2009,FreeElectrons.
CreativeCommonsBYSA3.0license
Latestupdate:Aug28,2015,
Documentsources,updatesandtranslations:
http://freeelectrons.com/docs/git
Corrections,suggestions,contributionsandtranslationsarewelcome!

Baseadonosslidesdisponveisemhttp//freeelectrons.com

OqueoGit?
Umsistemadecontroledeverso,comoCVS,SVN,Perforceor
ClearCase.
Originalmentedesenvolvidoparaodesenvolvimentodokerneldo
Linux,utilizadoporumgrandenmerodeprojetos,incluindoo
UBoot,GNOME,Buildroot,uClibcemuitosoutros.
AocontrriodoCVSouSVN,Gitumcontroledeverso
distribudo.
Noutilizarepositriocentral.
Cadausuriotemumrepositriolocal.
Ramificaolocalpossvelemuitoimportante.
Compartilhamentofcilesimplesentredesenvolvedores.
Bemadequadoparaomodelodedesenvolvimentocolaborativo
usadoemprojetosdecdigoaberto.
2
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Instalao
OGitestdisponvelcomoumpacotenasuadistribuiolinux:
sudoaptgetinstallgitcore
Atravsdocomandogitpossvelacessartudoqueestno
repositrio.
gitpossuivrioscomandos,chamadosusando:git
<comando>,onde<comando>podeserclone,checkout,
branch,etc.
Ajudapodeserencontradanocomando:
githelp<comando>

Cadastreseunomeeemail
Elesestaroreferenciadosemcadaumdoscommits.
gitconfigglobaluser.name'MyName'
gitconfigglobaluser.emailme@mydomain.net
3
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Clonandoumrepositrio
Paracomearatrabalharemumprojeto,utilizeoperaode
clonagemdoGit.
ComCVSouSVN,seriautilizadoaoperaodecheckoutpara
teraltimacpiadaversodoprojeto(maisnova).
ComoGit,umacpiadetodoorepositriorealizadaemseu
computador,incluindoohistrico,quepermitequesejam
realizadasoperaesmesmoquandoseestoffline.
ClonandoorepositriodokerneldoLinuxdeLinusTorvalds
gitclonegit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
2.6.git

Ogit://umprotocoloespecill.Amaioriadosrepositrios
pode,tambm,seracessadoutilizando:http://,porm
relativamentemaislento.
Depoisdeclonar,nolinux2.6/,disponibilizadoorepositrio
comacpiafuncionaldabranchmaster.
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Explorandoohistrico
Ogitloglistatodososcommits.Oltimocommitoque
apareceprimeiro.
commit4371ee353c3fc41aad9458b8e8e627eb508bc9a3
Author:FlorianFainelli<florian@openwrt.org>
Date:MonJun102:43:1720090700
MAINTAINERS:takemaintainershipofthecpmacEthernetdriver
ThispatchaddsmeasthemaintaineroftheCPMAC(AR7)
Ethernetdriver.
Signedoffby:FlorianFainelli<florian@openwrt.org>
Signedoffby:DavidS.Miller<davem@davemloft.net>

gitlogpirlistartodososcommitscomoseudiff(acima)
correspondente.
OhistricodoGitnolinearcomoCVSorSVN,pormum
grficodecommits.
Deixaumpoucomaiscomplicadoparaserentendidonocomeo.
PormpermitequeferramentaspoderosasdoGitsejamutilizadas:
(distributed,branching,merging)
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Visualizandoohistrico
gitkumaferramentagrficaquerepresentaohistricodo
repositrioGit
Podeserinstaladodiretamentedopacotegitk

6
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Visualizandoohistrico
OutratimaferramentaainterfaceWebparaoGit.Paratero
kernel,eleestdisponvelem:http://git.kernel.org/

7
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Atualizandooseurepositrio
Orepositrioquefoiclonadonocomeodoprojetosermudado
comotempo.
Aoatualizarorepositriolocal,istoirrefletirnasmudanas
realizadasnorepositrioremoto,esernecessrioatualizaro
seurepositriodetemposemtempos.
Ocomandogitpull
Internamente,realizaduascoisas:
Buscaasnovasmudanasnorepositrioremoto(gitfetch)
Fundeasnovasmudanasnabranchatual(gitmerge)

8
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Tags
Alistadastagsexistentespodemserachadasutilizando:
gittagl
Parachecaraversofuncionaldorepositriocomumatagdada:
gitcheckout<nomedatag>
Paramostraralistademudanasentreumadeterminadatagea
versomaisnova:
gitlogv2.6.30..master
Paramostraralistademudanascomdiff"emumarquivoentre
duastags:
gitlogv2.6.29..v2.6.30MAINTAINERS
Comgitk:
gitkv2.6.30..master
9
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Ramificaes(Branches)
Paracomearatrabalharemalgo,melhorcriaruma
ramificao(branch)
apenaslocal,svocconsegueenxergarabranch
rpida
Permitequeotrabalhosejadivididoemdiferentestpicos,
podendoserdescartadoposteriormente.
barato,mesmoquevocpensequeestejafazendoalgorpidoe
fcil,crieumabranch

Diferentedeoutrossistemasdecontroledeverso,Gitencoraja
ousodebranches.Noexiteemutilizlas.
NadisciplinadeSEnoiremosutilizarBranch
10
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Ramificaes(Branches)
Crieumabranch
gitbranch<nomedabranch>
Movaessabranch
gitcheckout<nomedabranch>
Osdoiscomandosanteiroresaomesmotempo:
gitcheckoutb<nomedabranch>
Listarasbrancheslocais
gitbranchl
Listarasbranches,includindoasbranchesremotas
gitbrancha

11
Baseadonosslidesdisponveisemhttp//freeelectrons.com

Realizandomudanas
Editeumarquivocomseueditordetextofavorito
Mostrarostatusdaversodoseurepositrio:
gitstatus
Gittemumacaractersticachamadaindex,quepermiteorganizar
oscommitsantesdeseremcommitados.Oquepermiteque
apenasumapartedasmodificaessejarealizada,separadapor
arquivoouporpedaodecdigo.
Paracadaarquivomodificado:
gitadd<nomedoarquivo>
Depoiscommit.Nohnecessidadedeestaronlinepararealizar
ocommit:
gitcommit
Setodososarquivosmodificadosdevemestarnocommit:
gitcommita
Baseadonosslidesdisponveisemhttp//freeelectrons.com

12

Compartilhandomudanasporemail
Ojeitomaissimplesdecompartilharalgumasmudanas
mandarpatchesporemail.
Oprimeiropassogerarospatches
gitformatpatchnmaster..<suabranch>
Sergeradoumpatchparacadaumdoscommitsrealizadosna
branchescolhida<suabranch>
Osarquivosdopatchsero0001....,0002....,etc.

Osegundopassoenviaressespatches
gitsendemailcomposetoemail@domain.com00*.patch

Assumindoqueosistemadeemaillocalestpropriamente
configurado
Necessrio:gitemailpackagenoUbuntu.
OugitconfigpermitequesejaconfiguradooservidorSMTP,
porta,usurioesenha,casonecessrio.
Baseadonosslidesdisponveisemhttp//freeelectrons.com

13

Compartilhandomudanas:Repositrio
Casosejamfeitasmuitasmudanasnosarquivosequeira
simplificaracolaboraocomosoutroscontribuintesdo
repositrio,amelhoropoterseuprpriorepositrio.
Crieumanovaversodoseurepositrio.
cd/tmp
gitclonebare~/projectproject.git
touchproject.git/gitdaemonexportok
Transfiraocontedodeproject.gitparaumlugarpblico
(AcessvelparaleituraporHTTPparatodos,eleituragravao
peloSSH)
Cloneesterepositrio:http://yourhost.com/path/to/project.git
Pushsuasmudanasusando:
gitpushssh://yourhost.com/path/toproject.git
srcbranch:destbranch
Baseadonosslidesdisponveisemhttp//freeelectrons.com

14

Monitorandorvoresremotas
AlmdarvoreoficialdeLinusTorvalds,voctalvezqueirautilizar
outrosdesenvolvimentosourvoresexperimentais.
ArvoreOMAP
git://git.kernel.org/pub/scm/linux/kernel/git/tmli
nd/linuxomap2.6.git
Arvoredetemporeal
git://git.kernel.org/pub/scm/linux/kernel/git/rost
edt/linux2.6rt.git
Ocomandoremotodegitpermitegerirrvoresremotas.
gitremoteaddrtgit://git.kernel.org/pub/scm/li
nux/kernel/git/rostedt/linux2.6rt.git
Pegueocontedodarvore
gitfetchrt
Mudeparaumadasbranches
gitcheckoutrt/master
15
Baseadonosslidesdisponveisemhttp//freeelectrons.com

AlgunsClientesGIT

GitforWindows
https://gitforwindows.github.io/
16
Baseadonosslidesdisponveisemhttp//freeelectrons.com

AlgunsClientesGIT

TortoiseGit
http://tortoisesvn.net/
17
Baseadonosslidesdisponveisemhttp//freeelectrons.com

AlgunsClientesGIT

SmartGIT
http://www.syntevo.com/smartgit/
18
Baseadonosslidesdisponveisemhttp//freeelectrons.com

SobreoGit
NsvimosascaractersticasbsicasdoGit.
Hmuitomaisrecursosdisponveis(rebasing,bisection,merging
andmore)
Referncias:
GitManual
http://www.kernel.org/pub/software/scm/git/docs/usermanual.html
GitBook
http://book.gitscm.com/
Gitofficialwebsite
http://gitscm.com/
JamesBottomley'stutorialonusingGit
http://freeelectrons.com/pub/video/2008/ols/ols2008jamesbottomleygit.ogg

19
Baseadonosslidesdisponveisemhttp//freeelectrons.com

AtividadePrticaGit

CloneumrepositrioGite
exploreohistrico.
Crieecompartilhemudanas
paraumprojetogeridoemum
Git.

20
Baseadonosslidesdisponveisemhttp//freeelectrons.com

You might also like