git - uffleomurta/courses/2017.1/es2/aula5a.pdf · • git init – cria um repositório git no...

23
Git Leonardo Gresta Paulino Murta [email protected]ff.br

Upload: others

Post on 27-Jun-2020

27 views

Category:

Documents


0 download

TRANSCRIPT

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

Individual

Leonardo Murta Git 5

Cliente-servidor

Leonardo Murta Git 6

Gerentedeintegração

Leonardo Murta Git 7

Ditador/tenentes

Leonardo Murta Git 8

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

Principalreferênciabibliográfica•  Chacon,S.ProGit.Apress,1ªedição,2009.

Leonardo Murta Git 22