git e github
DESCRIPTION
Curso de Git e GitHubTRANSCRIPT
![Page 1: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/1.jpg)
GIT E GITHUBCOLABORAÇÃO E ORGANIZAÇÃO EM SEUS PROJETOS
![Page 2: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/9.jpg)
CRIANDO UMA CONTA NO GITHUBVamos acessar o página do GitHub http://github.com
![Page 10: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/10.jpg)
CRIANDO UM REPOSITÓRIONa tela inicial do GitHub, clique em New Repository
![Page 11: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/18.jpg)
Á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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/22.jpg)
![Page 23: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/23.jpg)
COMANDOS DO GIT
![Page 24: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/43.jpg)
![Page 44: Git e GitHub](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.site/reader033/viewer/2022052411/55632af2d8b42a57348b4f39/html5/thumbnails/45.jpg)
THANK YOU
Prof. Leonardo Marcelino [email protected] [email protected] https://twitter.com/leonardom https://www.facebook.com/leomarcelino