Git init

18
git init Matheus Pereira | [email protected]

description

Palestra sobre Git apresentada no Evento TcheLinux Caxias do Sul de 2013. Devido a todo tipo de problema que pode ocorrer no desenvolvimento de um software, profissionais de TI, em especial programadores, devem conhecer e saber utilizar ferramentas de controle de versão. Git é um sistema de controle de versão distribuído, de código aberto, voltado à atender todo tipo de necessidade, desde pequenos a grandes projetos, de forma rápida e eficiente. O objetivo deste trabalho é apresentar o conceito de controle de versão, ensinando comandos básicos para a utilização da ferramenta git juntamente com repositórios online (github e bitbucket).

Transcript of Git init

Page 1: Git init

git initMatheus Pereira | [email protected]

Page 2: Git init

Controle de versãoQuando foi salvo?Por que foi salvo?O que foi alterado?Quem alterou?

Manter históricoComparar alteraçõesReverter arquivos para estado anteriorTrabalho paralelo

Page 3: Git init

Controle de versãoConcurrent Version System (CVS)Subversion (SVN)MercurialPerforceBazaarGit...

Page 4: Git init

GitOpen SourceDistribuídoCriado por Linus TorvaldsMantido por Junio HamanoVersão estável: 1.8.3.4http://git-scm.com/

Page 5: Git init

Quem usa?Instituto Communitas / Hadi.comLinux KernelGooglePostgreSQLFacebookLinkedInTwitter…

Page 6: Git init

Distribuído x Centralizado

git-scm.com

Page 7: Git init

Os três estados

Modificado (Modified)Preparado(Staged)Consolidado(Committed)

git-scm.com

Page 8: Git init

Ciclo de vida

git-scm.com

Page 9: Git init

Repositórios online

Page 10: Git init

Inicializar repositório$ git init$ git remote add github https://github.com/matheper/gitInit.git

Page 11: Git init

Clonar repositórioSSH$ git clone [email protected]:matheper/gitInit.git

HTTP$ git clone https://github.com/matheper/gitInit.git

Page 12: Git init

Vincular repositório$ git remote add bitbucket [email protected]:matheper/gitinit.git

Page 13: Git init

Status de arquivos$ vim hello.py$ git status$ git add hello.py$ git status$ vim hello.py$ git status# o que aconteceu?

Page 14: Git init

Comparando arquivos$ vim readme.txt$ vim hello.py$ git diff$ git add readme.txt$ git diff$ git diff hello.py$ git diff --staged$ git add hello.py

Page 15: Git init

Enviando alterações$ git commit -m “Primeiro commit”$ git push bitbucket master# o que aconteceu com o repositório do bitbucket? E com o github?$ git add hello.py$ git commit -m “Segundo commit”$ git push bitbucket master$ git push github master

Page 16: Git init

Branch$ git branch

$ git branch novabranch$ git checkout novabranch# ou então...$ git checkout -b novabranch

$ git branch -a

Page 17: Git init

Merge$ git checkout master$ git merge novabranch# e se acontecer um conflito?$ git status# git status sabe... foi no hello.py$ vim hello.py$ git add hello.py$ git commit -m “Conflito resolvido”

Page 18: Git init

Comandos diversos$ git reset --hard commit_id$ git checkout hello.py novabranch$ git reset HEAD hello.py$ git checkout hello.py$ git branch -D novabranch$ git checkout bitbutcket :novabranch$ git remote prune bitbucket$ git tag -a v1.0 -m 'Tag versão 1.0'