Oqueéversionado?
Leonardo Murta Git 2
Diretório Arquivo
ElementoFS
ArquivoBinário ArquivoTexto Linha
Comoéversionado?
Leonardo Murta Git 3
CommitA CommitB
CommitC
CommitE
CommitD
CommitF
CommitAutor
CommiHerMensagem
Data
ElementoFS*
0..2 pais
Formasdeadoção• Apesardeserpeer-to-peer,normalmenteédefinidoum“workflow”paraadoçãodeDVCSemfunçãodecaracterísXcasdoprojeto– Individual– Cliente-servidor– Gerentedeintegração– Ditador/tenentes
Leonardo Murta Git 4
Passoapasso• VamosuXlizaroGitgradualmenteemdiferentessituações– Conceitosbásicos– Repositóriolocal– Inspecionandomudanças– Demarcandoversõesespeciais– Repositóriolocalcomramos– Repositórioremoto– MúlXplosrepositóriosremotos
Leonardo Murta Git 9
Conceitosbásicos:help!• githelp
– Ofereceajudageralsobreogit• githelp<comando>
– Ofereceajudasobreumcomandoespecíficodogit
• Demaiscomandosdãodicasdoquepodeserfeito(leiacomatençãoassaídasdoscomandos!)
Leonardo Murta Git 10
Conceitosbásicos:quemsoueu?• gitconfig--globaluser.name<seunome>
– Configuraonomedousuário
• gitconfig--globaluser.email<seuemail>– Configuraoemaildousuário
Leonardo Murta Git 11
Conceitosbásicos:stagingarea• Áreaondesãocolocadososarquivosquepretendemosenviarparaorepositório
Leonardo Murta Git 12
ÁreadeTrabalho
StagingArea
RepositórioLocal
Conceitosbásicos:commitid• CadasistemadecontroledeversãousaumaestratégiadiferenteparaidenXficarcommits– Númerosequencialporarquivo(CVS)– Númerosequencialporrepositório(Subversion)– Hash(GiteMercurial)
Leonardo Murta Git 13
Conceitosbásicos:apelidos• Aversãobasedoseuespaçodetrabalho
– HEAD• Oramoprincipaldoseurepositório
– master
• Orepositóriodoqualseurepositóriofoiclonado– origin
Leonardo Murta Git 14
Repositóriolocal• gitinit<nome>
– CriaumrepositórioGitnodiretório
• gitadd– Adicionaumarquivonastagingareaparaserenviadoaorepositórionopróximocommit
• gitcommit–m<mensagem>– Enviaosarquivosqueestãonastagingareaparaorepositório
Leonardo Murta Git 15
Inspecionandomudanças• gitstatus
– Inspecionaoespaçodetrabalho• gitlog[--graph][--decorate=short][--name-status]
– Inspecionaohistóricodorepositóriolocal• gitshow
– Inspecionaumcommit• gitdiff
– Comparaoespaçodetrabalhocomastagingareaoucomalgumaversãodorepositório
Leonardo Murta Git 16
Interfacegráfica• Épossívelfazertodosessespassosdeformavisual
• Dentreváriasferramentas,vamospraXcarcom...
Leonardo Murta Git 17
Demarcandoversõesespeciais• gittag
– Listaosrótulosexistentes• gittag<nomedorótulo>[commitid]
– Criaumrótulosobreumdadocommit(HEADpordefault)
• gittag–d<nomedorótulo>– Removeumrótulo
Leonardo Murta Git 18
Repositóriolocalcomramos• gitbranch--all-v
– Listaosramosexistentesnorepositório• gitbranch<nomedoramo>
– CriaumramoàparXrdaversãoindicadanoHEAD• gitbranch–d<nomedoramo>
– Removeumramo• gitcheckout<commitidounomedoramo>
– Trocaaversãobasedoespaçodetrabalho• gitmerge<nomedoramo>
– CombinaumramocomoramocorrenteLeonardo Murta Git 19
Repositórioremoto• gitclone<url><diretório>
– Criaumrepositóriolocalcopiandoohistóricodeumrepositórioremoto
• gitpull– Atualizaorepositóriolocaleoespaçodetrabalhoemrelaçãoaumrepositórioremoto
• gitpush– Atualizaorepositórioremotoemrelaçãoaorepositóriolocal
Leonardo Murta Git 20
MúlXplosrepositóriosremotos• gitremote-v
– Listarosrepositóriosremotoscadastrados
• gitremoteadd<nome><url>– Adicionaumnovorepositórioremoto
• gitremoteremove<nome>– Removeumrepositórioremotoexistente
Leonardo Murta Git 21
Top Related