desmistificando a ferramenta git

Post on 16-Apr-2017

429 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Desmistificando a ferramenta git

Diogo Machado• Desenvolvedor web à 4

anos e meio na São Camilo ES;

• Formado pelo IFES;

• Já participei de mais de 20 projetos de software;

• Destaque na revista Galileu em 2011 pelo projeto Educação na nuvem;

• Empreendedor;

Como você faria para trabalhar em um software desenvolvido em grupo com um colega hoje?

Git é uma ferramenta para registrar alterações feitas em um conjunto de

arquivos ao longo do tempo, uma tarefa tradicionalmente conhecida como

"controle de versão"

Linus TorvaldsCriador do Git

• Verificar o estado do seu projeto em qualquer ponto no passado;

• Mostrar diferenças entre diversos estágios;

• Dividir o desenvolvimento em frentes de trabalho, os chamados "branches";

• Recombinar periodicamente os branches em um processo chamado de merge;

• Permitir que muitas pessoas trabalhem simultaneamente;

Instalação

Instalaçãosudo apt-get install git

Configurações básicas

git config --global user.name "Diogo Machado"git config --global user.email diogo@diogomachado.comgit config --global color.ui auto

Repositório central no nosso servidor

mkdir ifes.git

git init --bare --bare porque esse repositório será nossa base para que outras

pessoas possam baixar e atualizar o projeto

Para seguirmos um padrão adotado pelos desenvolvedores, vamos criar

a pasta com final .git

cloneQuando clonamos um projeto git do repositório

central

Clonando nosso projeto

git clone root@192.168.201.48:/git/<nomeprojeto>.git

Podemos também iniciar um repositório e adicionar o

remotocd <diretorio>git init

git remote add origin root@123.123.234.23:~/git/ifes.git

git pull origin master

pullSignifica que vamos puxar todas as atualizações

do projeto

Adicionando arquivos para rastrear mudanças

git add .

git add <nomearquivo>Podemos também adicionar apenas um arquivo, ou um diretório inteiro

para ser rastreado pelo git.

O ponto fala para o git adicionar todos os arquivos da pasta para

serem rastreados

Ignorando pastastouch .gitignore Este arquivo irá dizer ao git para

ignorar tudo que for passado de parâmetro nele

"Commitando"git status

git commit -m "Banner rotativo add"

Passamos -m para descrevermos a nossa alteração.

Antes de commitar, nós podemos ver o que está na lista para ser

rastreado.

commitÉ quando nós rotulamos para o git o que foi feito

Verificando o loggit log

Verificando o log + arquivos alterados

git log --stat

pushSignifica que enviar todas as atualizações do

projeto

Enviando alterações para o repositório central

git push origin masterDepois de adicionado os arquivos e comitado, nós vamos enviar nossas

alterações para o repositório central que criamos no nosso

servidor

branchÉ uma frente de trabalho, ramificação. Por padrão

trabalhamos na branch Master

master

banner-rotativo

Até aqui, nós:Temos um repositório central

Adicionamos nossos arquivos

Comitamos, dizendo o que foi feito

Enviamos para o servidor

Criando uma branch

git checkout -b "nova-feature"

Verificando em qual brach está

git branch

"Andando" de uma branch para a outra

git checkout masterO git só me deixa ir para outra branch assim que eu commitar

todas as alterações realizados nos arquivos rastreados. Se não fiz nada, ele anda de voltar para o

master.

Enviando a branch para o servidor

git push origin nova-feature

mergeQuando unimos duas branchs

Fazendo merge de uma branch

git push origin nova-feature

Verificar todas suas branchs, tanto locais quanto remotas

git branch -a

E se meu colega comitou e enviou uma alteração e eu não baixei e estou tentando enviar com push para o

repositório?

Vai te pedir para fazer um git pull origin master

Auto-merge Conflito no merge

Irá fazer um merge automático dos arquivos.

Vai te avisar de conflitos, e automaticamente irá lhe

apresentar dentro do arquivo as diferenças entre um

commit e outro.

Adicione os arquivos corrigidos e manda denovo.

1ª possibilidade 2ª possibilidade

E se eu já adicionei e commitei, mas não enviei para o servidor, e quero

voltar?

Voltando um commitgit reset --soft HEAD~1 Irá voltar o commit mantando as

últimas alterações realizadas no git, possibilitando fazermos um pull ou

mesmo um novo commit

Lembre-se SEMPRE

Sempre dar git pull origin master

Não se esquecer te commitar suas alterações antes de ir

embora.

E se eu quiser manter mais de um repositório central?

Adicionando repositório remoto

git remote add deploy ubuntu@182.123.213.23:~/git/ifes.git

Após o add nós nomeamos como quisermos, por padrão temos

sempre o origin que indica nossa branch master.

Enviando para os dois

git push deploy master; git push origin master;

Excluir arquivos não rastreados

git clean -f

Aplicativos para Git

https://git-scm.com/downloads/guis

• Rede social• Repositórios públicos• Repositórios privados• Conta empresa

• Repositórios públicos• Repositórios privados• Conta empresa• Outras ferramentas

Links úteis

• http://rogerdudler.github.io/git-guide/index.pt_BR.html (Guia prático)

• https://git-scm.com/ (Site oficial)

• http://try.github.com/ (Site interativo)

diogo@diogomachado.com

Obrigado :)

top related