introducao git fisl

Post on 24-Jan-2015

237 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Introdução ao Git(Por que não consigo mais usar SVN)

Oi!Hanneli (a.k.a. @hannelita)!

Software developer!

Middleware Consultant at !

Café e Pokémon <3

O que vamos ver hoje?Controle de versão - por que preciso disso?!

O surgimento do Git!

Primeiros passos com Git!

Para onde ir depois do básico!

Fotos e GIFS

Yet another talk about Git?Tenho dificuldade para aprender.

Palestra com primeiros passos QUE FUNCIONAM, sem complicação.

Seu primeiro dia numa empresa

Seu primeiro dia numa empresa

Code Code Code

Se o projeto já está andando, alguém precisa lhe fornecer o código

Como obter o código?

1. Pendrive?

Pendrive?Rápido

#COMOFAZ

SMP

Sincronização Manual de Pendrives não parece legal.

2. Compartilhar pela rede

Projeto

Compartilhar pela rede

Compartilhar pela redeTodos com acesso ao código

Compartilhar pela redeTodos com acesso ao código

LOL.java WTFWTF.java

LOL.java

#COMOFAZ

Nenhum dos casos parece ser um bom cenário para distribuir e organizar o código numa equipe.

Evolução nos repositórios de código

Versão 3!Versão 2!Versão 1

SVN

SVNAjuda com o Merge

Código Centralizado

Versionar de forma fácil e intuitiva

Problem Solved!

Problemas

• Conflitos

Problemas• Como interromper a criação de uma tarefa e

começar outra?

Problemas• Quero começar uma feature a partir de um código

que você ainda não comittou

Problemas• A PASTA .svn CORROMPEU!

Algo mais eficiente

De volta a 2005

Manter o Kernel!

Manter o Kernel!

Versão 3!Versão 2!Versão 1

Controle de versão distribuído

Git

Quais suas primeiras impressões sobre Git?

• SVN é mais fácil!

• Git é muito complexo

• Não sei mexer nisso!

Por que Git parece tão traumático?

Por que Git parece tão traumático?

• Command Line

• Comandos são diferentes do SVN

• Novos conceitos

Supere seus medos

Git - primeiros passos1. Obter cópia local do

projeto

2. Receber alterações

3. Merge das alterações locais com remotas

4. Compartilhar alterações

git clone <URL do repo>

git pull

git add <FILE>!git commit -m “Commit"!

git push

git remote add remote_repo <URL repo>

Acredite, isso já resolve muitos casos de uso.

Git - e os conflitos?

A Receita de Bolo para minimizar conflitos

• Faça suas alterações

• git checkout -b work

• git add <alterações>

• git commit -m "Alterações"

• git checkout master

• git pull

• git checkout work

• git rebase master

• git checkout master

• git merge work

• git push

A Receita de Bolo para minimizar conflitos

Explicando a receita

(programe, duh)

1. Faça suas alterações

2. git checkout -b work

Explicando a receita

O Git permite que você trabalhe em diferentes 'workspaces'

Explicando a receita

Projeto (cópia local)

git checkout -b

"Cópia" da cópia local

Posso alternar entre as "cópias"Uma “cópia" não é uma cópia em discoUma “cópia" é um snapshot

Branch

BranchesExplicando a receita

Projeto (cópia local)

Branch master

git checkout -b workSnapshot

Branch workBaseado na branch master

git checkout -b lolol

SnapshotBranch lolol

Baseado na branch work

Cria nova branch

Explicando a receita3. git add <alterações>

“Git, essas alterações são importantes! Quero que meu Snapshot as veja!"

4. git commit -m "Mensagem"

Meu snapshot local possui as alterações que quero enviar para o repositório remoto

Explicando a receita5. git checkout master

branch work

git checkout

branch master

git checkout <nome Branch>

Alterna entre branches existentes

Explicando a receita6. git pull

branch master

Pega as alterações do repositório remoto e faz merge

Explicando a receitaOnde fizemos as alterações? Master ou work?

Se você não alterar o master, pode ter sempre uma cópia local do repositório atualizado sem ter conflitos!

Explicando a receita7. git checkout work

branch master

git checkout

branch work

Explicando a receita8. git rebase master

Explicando a receitaExistem 2 formas para fazer merge no Git

git merge git rebaserebase possui vários usosOcorre ao fazer um git pull

"rebase faz um merge mais inteligente"

Explicando a receitaPor que tive que trocar de branch para fazer rebase?

"rebase faz um merge mais inteligente"

Axioma

Só é seguro fazer rebase em branches locaisSe não criássemos outra branch, faríamos:

branch master

rebase

Explicando a receita

Explicando a receitaA chance de não ocorrer conflitos com rebase é maior do que

com git merge

"rebase faz um merge mais inteligente"

Só é seguro fazer rebase em branches locais

Explicando a receita

Deixe os conflitos ocorrerem em sua snapshot de trabalho.

branch work

Explicando a receita9. git checkout master

branch work

git checkout

branch master

Explicando a receita10. git merge work

Se o rebase foi bem sucedido, o merge não terá problema

branch master

git rebase

branch work

Conflitos!ocorrem!

aqui

git merge

Explicando a receita11. git push

Envia as alterações para o repositório remoto

branch master

Complementando a receita11. git branch -d work

Remove a branch work. Nesse momento ela não é mais útil.Uma nova task, uma nova branch

Onde posso conseguir um servidor Git?

Faça um ;D

Github

Bitbucket

E aquela história de ‘controle de versão distribuído’?

git remote add server <URL>

server

git remote add Outro_server <URL2>

Outro_server

Próximos passos de estudoBranches remotas

git stashgit resetgit revert

git bisect

git blame

Hooks git config

Ferramentas gráficas

Depois de um tempo com Git…

NÃO CONSIGO VOLTARA PARA O SVN!

Obrigada!Perguntas?

@hannelitahannelita@gmail.com

Bibliografiahttp://git-scm.com/book

http://gitref.org/

top related