45
GIT E GITHUB COLABORAÇÃO E ORGANIZAÇÃO EM SEUS PROJETOS

Git e GitHub

Embed Size (px)

DESCRIPTION

Curso de Git e GitHub

Citation preview

Page 1: Git e GitHub

GIT E GITHUBCOLABORAÇÃO E ORGANIZAÇÃO EM SEUS PROJETOS

Page 2: Git e GitHub

CONTROLE DE VERSÃOHoje em dia com equipes grandes e distribuídas um projeto dificilmente sobrevive sem um controle de versões. !A finalidade de um sistema de controle de versões é gerenciar diferentes versões no desenvolvimento de qualquer documento. !Soluções livres: CVS, Mercurial, SVN e Git Soluções comerciais: SourceSafe, PVCS, ClearCase, etc

Page 3: Git e GitHub

O QUE É O GIT?✓ Sistema de controle de versões distribuído com ênfase em

velocidade ✓ Inicialmente projetado e desenvolvido por Linus Torvalds

para desenvolvimento do kernel do Linux ✓ Cada diretório de trabalho do Git é um repositório com um

histórico completo e habilidade total de acompanhamento das revisões, não dependendo de acesso a uma rede ou servidor central

fonte: http://pt.wikipedia.org/wiki/Git

Page 4: Git e GitHub

MOTIVOS PARA USAR GIT✓ Branches facilitados e independentes ✓ Facilidade com merges ✓ Rapidez ✓ Distribuído ✓ Ocupa menos espaço que um checkout SVN ✓ Integração GitHub

Page 5: Git e GitHub

O QUE É O GITHUB? O GitHub é uma rede social de desenvolvedores. Nela podemos criar repositórios (públicos e privados) para nossos projetos, seguir outros desenvolvedores, baixar projetos, modificar projetos, receber atualizações de modificações de projetos, etc

Page 6: Git e GitHub

QUAL A RELAÇÃO DO GIT COM O GITHUB?Os dois se integram de forma bem simples. Podemos criar um repositório no GitHub e simplesmente “commitar" as alterações do nosso projeto usando o Git. !Como exemplo, podemos criar um projeto e torná-lo público no GitHub utilizando a ferramenta Git.

Page 7: Git e GitHub

INSTALANDO O GITNo Linux basta abrir o terminal e digitar: sudo apt-get install git-core !No Windows devemos baixar a instalação através do link: http://msysgit.github.io/

Page 8: Git e GitHub

CONFIGURANDO O GITApós a instalação devemos configurar o Git executando os comandos: git config - -global user.name “Seu nome aqui” git config - -global user.email “Seu email aqui” !Para ver se deu tudo certo execute: git config - -global - - list

Page 9: Git e GitHub

CRIANDO UMA CONTA NO GITHUBVamos acessar o página do GitHub http://github.com

Page 10: Git e GitHub

CRIANDO UM REPOSITÓRIONa tela inicial do GitHub, clique em New Repository

Page 11: Git e GitHub

CRIANDO UM REPOSITÓRIOInforme o nome do repositório e uma descrição sobre o projeto. Escolha também se esse repositório será publico ou privado.

Page 12: Git e GitHub

CONFIGURANDO UMA CHAVE SSHTendo cadastrado e logado em sua conta do GitHub, vamos agora configurar uma chave SSH para permitir enviar commits para nosso repositório remoto. !No terminal ou Git Bash digite: ssh-keygen -t rsa -C “seu email configura no github” !O comando acima vai criar um arquivo chamado id_rsa.pub. Vamos abrir esse arquivo em qualquer editor e copiar o seu conteúdo com CTRL+C

Page 13: Git e GitHub

CONFIGURANDO UMA CHAVE SSHAgora no GitHub, vamos em “Settings” e depois em “SSH Keys”. Clique em “Add SSH Key” para adicionar uma nova chave. Informe um título para identificar seu computador e no campo “Key" cole todo o conteúdo copiado do arquivo id_rsa.pub.

Para testar digite o comando abaixo no terminal: ssh -T [email protected]

Page 14: Git e GitHub

CRIANDO PROJETO LOCALNo terminal vamos criar um diretório para nosso projeto e iniciar um repositório Git: !mkdir curso-git cd curso-git git init

Page 15: Git e GitHub

PRIMEIRO COMMITVamos agora criar um arquivo e realizar o primeiro commit do nosso projeto: !touch README git commit -m “Commit inicial"

Page 16: Git e GitHub

CONFIGURANDO REPOSITÓRIO REMOTO

Agora vamos configurar nosso projeto para usar nosso repositório remoto do GitHub. No terminal digite o comando abaixo: !git remote add origin https://github.com/<seu login>/curso-git.git

Page 17: Git e GitHub

ENVIANDO PARA GITHUBPara atualizar o GitHub com o que está no diretório local, digite o comando: !git push origin master

Page 18: Git e GitHub

ÁREAS DE OPERAÇÃOSão os locais onde os arquivos irão transitar enquanto estão sendo editados e modificados. !As áreas são: ✦ Working Directory ✦ Stage Area ✦ Git Directory (.git)

Page 19: Git e GitHub

GIT DIRECTORYO diretório .git é onde o Git guarda os dados e objetos do seu projeto. Ele é o diretório mais importante do Git e é ele que será copiado quando alguém clonar o projeto.

Page 20: Git e GitHub

WORK DIRECTORYÉ onde você vai trabalhar. Os arquivos ficam ai para poderem ser usados e alterados quantas vezes for necessário. É basicamente a pasta do seu projeto

Page 21: Git e GitHub

STAGING AREAQuando você faz uma alteração em um arquivo, ele vai para o Staging Area, que é uma área intermediária. !Basicamente o Staging Area contém o Git Directory com os arquivos modificados, onde ele guarda as informações sobre o que vai no seu próximo commit.

Page 22: Git e GitHub
Page 23: Git e GitHub

COMANDOS DO GIT

Page 24: Git e GitHub

GIT ADD

Este comando adiciona arquivos que serão controlados ("versionados") pelo Git !Sintaxe: git add <nome do arquivo> !Normalmente controlamos TUDO que está no projeto. Para adicionar todos os arquivo usamos o comandos abaixo: git add . ou git add *

Page 25: Git e GitHub

GIT STATUSExibe o status do repositório. Vai exibir os novos arquivos adicionados e arquivos que foram modificados e estão no Staging Area !Sintaxe: git status !

Page 26: Git e GitHub

GIT COMMITEste comando realmente confirma as alterações realizadas e as envia para o repositório local mas não ainda para o repositório remoto !Sintaxe: git commit -m “comentários das alterações" !

Page 27: Git e GitHub

GIT PUSHEste comando vai enviar as alterações do repositório local para o repositório remoto se um estiver configurado !Sintaxe: git push origin master !

Page 28: Git e GitHub

GIT PULLEste comando vai atualizar nosso repositório local com todas as alterações que estão no repositório remoto. Ele vai obter e fazer o merge (mesclar) as alterações remotas. !Sintaxe: git pull origin master !

Page 29: Git e GitHub

GIT LOGCom esse comando podemos visualizar log de alterações do nosso repositório. Ele exibe o nome, data e comentário de cada commit !Exemplo: git log !

Page 30: Git e GitHub

GIT DIFFPodemos comparar a versão atual com a última versão "commitada" com o comando git diff. O sinal de “+" representa linhas adicionadas e o “-“ linhas removidas. !Exemplo: git diff !

Page 31: Git e GitHub

GIT RESETEste comando nos permite remover arquivos que estão na Staging Area, evitando assim que as modificações desse arquivo sejam enviadas no commit. !Sintaxe: git reset HEAD <nome do arquivo> !Sintaxe: git reset HEAD index.html

Page 32: Git e GitHub

GIT CHECKOUTNo caso de termos feito algo errado, isto é, alterado um arquivo erroneamente. Podemos reverter as alterações locais usando o comando git checkout - - Esse comando vai recuperar a versão do último commit !Sintaxe: git checkout - - <nome do arquivo> !Exemplo: git checkout - - README

Page 33: Git e GitHub

GIT FETCH E GIT RESETPara remover todas as alterações e commits locais e recuperar o histórico mais recente que está no servidor, usamos os comandos git fetch e git reset !Exemplo: git fetch origin git reset - -hard origin/master

Page 34: Git e GitHub

CLONANDO REPOSITÓRIOSQuando queremos criar uma cópia local de trabalho de um repositório remoto, usamos o comando git clone !Sintaxe: git clone <caminho repositorio> !Exemplo: git clone http://github.com/c0de1/curso-git

Page 35: Git e GitHub

RAMIFICANDOBranches (“ramos”) são utilizados para desenvolver funcionalidades isoladas umas das outras. O branch master é o branch “padrão”quando criamos um repositório. !Podemos usar outros branches para desenvolver mescla-os (merge) ao branch master após a conclusão.

Page 36: Git e GitHub

CRIANDO UM NOVO BRANCHPara criar um novo branch usamos o comando git checkout passando a opção -b !Sintaxe: git checkout -b <nome do branch> !Exemplo: git checkout -b nova_funcionalidade

Page 37: Git e GitHub

LISTANDO BRANCHESPara saber quais são os branches que existem em nosso repositório usamos o comando git branch. O branch que estiver com * no início é o branch atual !Exemplo: git branch

Page 38: Git e GitHub

MUDANDO DE BRANCHPara mudar de um branch para outro, também utilizamos o comando checkout, mas apenas informando o nome do branch que desejamos ir. !Sintaxe: git checkout <nome do branch> !Exemplos: git checkout master git checkout nova_funcionalidade

Page 39: Git e GitHub

BRANCHES SÃO LOCAISPor padrão um branch sempre vai residir localmente e não estará disponível a outros a menos que nós enviamos esse branch para o repositório remoto. !Exemplo: git push origin nova_funcionalidade

Page 40: Git e GitHub

MESCLANDO BRANCHESUma vez que terminamos o desenvolvimento da nova funcionalidade em um branch separado, é hora de mesclá-lo com o branch padrão (master). Para isso devemos selecionar o branch padrão (master) e executar o comando git merge. !Sintaxe: git merge <nome do branch> !Exemplo: git checkout master git merge nova_funcionalidade

Page 41: Git e GitHub

EXCLUINDO BRANCHESApós fazer o merge de um branch com o branch padrão (master) é comum excluirmos esse branch. Para isso usamos o comando git branch com a opção -d !Sintaxe: git branch -d <nome do branch> !Exemplo: git branch -d nova_funcionalidade

Page 42: Git e GitHub

GITIGNORENormalmente em projetos temos alguns arquivos que não são necessários serem mantidos no repositório por exemplo: !✦ Arquivos de logs ✦ Arquivos .class em projetos Java ✦ Arquivos de configurações contendo senhas ✦ Etc !Para o Git ignorar esses arquivos automaticamente, podemos criar um arquivo chamado .gitignore na raiz do nosso projeto e dentro de arquivo informar quais padrões de arquivos serão ignorados

Page 43: Git e GitHub
Page 44: Git e GitHub

PRA SABER MAIS

Usando Git com NetBeans IDE https://netbeans.org/kb/docs/ide/git_pt_BR.html !Usando Git no Eclipse http://jandersonantunes.blogspot.com.br/2013/09/git-no-eclipse-parte-i.html !Git Book http://git-scm.com/book

Page 45: Git e GitHub

THANK YOU

Prof. Leonardo Marcelino [email protected] [email protected] https://twitter.com/leonardom https://www.facebook.com/leomarcelino