Desmistificando a ferramenta git
-
Upload
diogo-souza-machado -
Category
Technology
-
view
429 -
download
5
Transcript of Desmistificando a ferramenta git
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 [email protected] 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 [email protected]:/git/<nomeprojeto>.git
Podemos também iniciar um repositório e adicionar o
remotocd <diretorio>git init
git remote add origin [email protected]:~/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 [email protected]:~/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
• 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)
Obrigado :)