SlideShare uma empresa Scribd logo
1 de 45
Baixar para ler offline
GIT E GITHUB 
COLABORAÇÃO E ORGANIZAÇÃO EM SEUS PROJETOS
CONTROLE DE VERSÃO 
Hoje 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
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
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
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
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.
INSTALANDO O GIT 
No 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/
CONFIGURANDO O GIT 
Apó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
CRIANDO UMA CONTA NO GITHUB 
Vamos acessar o página do GitHub 
http://github.com
CRIANDO UM REPOSITÓRIO 
Na tela inicial do GitHub, clique em New Repository
CRIANDO UM REPOSITÓRIO 
Informe o nome do repositório e uma descrição sobre o 
projeto. Escolha também se esse repositório será publico ou 
privado.
CONFIGURANDO UMA CHAVE SSH 
Tendo 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
CONFIGURANDO UMA CHAVE SSH 
Agora 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 git@github.com
CRIANDO PROJETO LOCAL 
No terminal vamos criar um diretório para nosso projeto e 
iniciar um repositório Git: 
! 
mkdir curso-git 
cd curso-git 
git init
PRIMEIRO COMMIT 
Vamos agora criar um arquivo e realizar o primeiro commit 
do nosso projeto: 
! 
touch README 
git commit -m “Commit inicial"
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
ENVIANDO PARA GITHUB 
Para atualizar o GitHub com o que está no diretório local, 
digite o comando: 
! 
git push origin master
ÁREAS DE OPERAÇÃO 
Sã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)
GIT DIRECTORY 
O 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.
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
STAGING AREA 
Quando 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.
COMANDOS DO GIT
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 *
GIT STATUS 
Exibe 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 
!
GIT COMMIT 
Este 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" 
!
GIT PUSH 
Este comando vai enviar as alterações do repositório local 
para o repositório remoto se um estiver configurado 
! 
Sintaxe: 
git push origin master 
!
GIT PULL 
Este 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 
!
GIT LOG 
Com 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 
!
GIT DIFF 
Podemos 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 
!
GIT RESET 
Este 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
GIT CHECKOUT 
No 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
GIT FETCH E GIT RESET 
Para 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
CLONANDO REPOSITÓRIOS 
Quando 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
RAMIFICANDO 
Branches (“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.
CRIANDO UM NOVO BRANCH 
Para 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
LISTANDO BRANCHES 
Para 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
MUDANDO DE BRANCH 
Para 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
BRANCHES SÃO LOCAIS 
Por 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
MESCLANDO BRANCHES 
Uma 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
EXCLUINDO BRANCHES 
Apó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
GITIGNORE 
Normalmente 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
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
THANK YOU 
Prof. Leonardo Marcelino 
! 
leonardo.marcelino@gmail.com 
leonardo.marcelino@unifeob.edu.br 
https://twitter.com/leonardom 
https://www.facebook.com/leomarcelino

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Git in 10 minutes
Git in 10 minutesGit in 10 minutes
Git in 10 minutes
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Git101
Git101Git101
Git101
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Git & Github for beginners
Git & Github for beginnersGit & Github for beginners
Git & Github for beginners
 
Git basics
Git basicsGit basics
Git basics
 
Git n git hub
Git n git hubGit n git hub
Git n git hub
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using GitGit 101 - Crash Course in Version Control using Git
Git 101 - Crash Course in Version Control using Git
 
Use o git e perca o medo de errar
Use o git e perca o medo de errarUse o git e perca o medo de errar
Use o git e perca o medo de errar
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Git training v10
Git training v10Git training v10
Git training v10
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 
The everyday developer's guide to version control with Git
The everyday developer's guide to version control with GitThe everyday developer's guide to version control with Git
The everyday developer's guide to version control with Git
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git real slides
Git real slidesGit real slides
Git real slides
 
Advanced Git Presentation By Swawibe
Advanced Git Presentation By SwawibeAdvanced Git Presentation By Swawibe
Advanced Git Presentation By Swawibe
 
git and github
git and githubgit and github
git and github
 
Git
GitGit
Git
 

Destaque

Destaque (7)

TDD - Test Driven Development
TDD - Test Driven DevelopmentTDD - Test Driven Development
TDD - Test Driven Development
 
Android
AndroidAndroid
Android
 
EJB
EJBEJB
EJB
 
GDG Angular 2
GDG Angular 2GDG Angular 2
GDG Angular 2
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
Java EE 6 JPA 2.0, EJB 3.1 e CDI 1.0
 
The Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post FormatsThe Six Highest Performing B2B Blog Post Formats
The Six Highest Performing B2B Blog Post Formats
 

Semelhante a Git e GitHub

Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
Raphael Cruzeiro
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
Fabricio Nogueira
 

Semelhante a Git e GitHub (20)

Minicurso GIT PET Computação
Minicurso GIT PET ComputaçãoMinicurso GIT PET Computação
Minicurso GIT PET Computação
 
Git & GitHub for beginners
Git & GitHub for beginnersGit & GitHub for beginners
Git & GitHub for beginners
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
Git e github
Git e githubGit e github
Git e github
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Conhecendo o git.
Conhecendo o git.Conhecendo o git.
Conhecendo o git.
 
Git e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código FácilGit e GitHub: Versionamento de Código Fácil
Git e GitHub: Versionamento de Código Fácil
 
Controle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básicoControle de Versão Distribuído com Git básico
Controle de Versão Distribuído com Git básico
 
Desmistificando a ferramenta git
Desmistificando a ferramenta gitDesmistificando a ferramenta git
Desmistificando a ferramenta git
 
Git that like a boss: Grupo RBS
Git that like a boss: Grupo RBSGit that like a boss: Grupo RBS
Git that like a boss: Grupo RBS
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 
GIT - Hands-On
GIT - Hands-On GIT - Hands-On
GIT - Hands-On
 
Gerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHubGerenciando projetos com Git e GitHub
Gerenciando projetos com Git e GitHub
 
Introdução ao git
Introdução ao gitIntrodução ao git
Introdução ao git
 
Git
GitGit
Git
 
Introdução ao Git
Introdução ao GitIntrodução ao Git
Introdução ao Git
 
Controle de versão e colaboração com Git
Controle de versão e colaboração com GitControle de versão e colaboração com Git
Controle de versão e colaboração com Git
 
Primeiros passos - GIT
Primeiros passos - GITPrimeiros passos - GIT
Primeiros passos - GIT
 
Git Overview: Grupo RBS
Git Overview: Grupo RBSGit Overview: Grupo RBS
Git Overview: Grupo RBS
 
EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 

Último

Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
azulassessoria9
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
LidianeLill2
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
rfmbrandao
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
azulassessoria9
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 

Último (20)

Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...Aprender as diferentes formas de classificar as habilidades motoras é de extr...
Aprender as diferentes formas de classificar as habilidades motoras é de extr...
 
Falando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introdFalando de Física Quântica apresentação introd
Falando de Física Quântica apresentação introd
 
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdfRepública Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
República Velha (República da Espada e Oligárquica)-Sala de Aula.pdf
 
Apresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União EuropeiaApresentação | Símbolos e Valores da União Europeia
Apresentação | Símbolos e Valores da União Europeia
 
Sistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturasSistema articular aula 4 (1).pdf articulações e junturas
Sistema articular aula 4 (1).pdf articulações e junturas
 
Missa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdfMissa catequese para o dia da mãe 2025.pdf
Missa catequese para o dia da mãe 2025.pdf
 
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
ATIVIDADE 2 - DESENVOLVIMENTO E APRENDIZAGEM MOTORA - 52_2024
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Acessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidadeAcessibilidade, inclusão e valorização da diversidade
Acessibilidade, inclusão e valorização da diversidade
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
Apresentação | Dia da Europa 2024 - Celebremos a União Europeia!
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)Sopa de letras | Dia da Europa 2024 (nível 2)
Sopa de letras | Dia da Europa 2024 (nível 2)
 
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de LedAula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
Aula 67 e 68 Robótica 8º ano Experimentando variações da matriz de Led
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
Tema de redação - As dificuldades para barrar o casamento infantil no Brasil ...
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 

Git e GitHub

  • 1. GIT E GITHUB COLABORAÇÃO E ORGANIZAÇÃO EM SEUS PROJETOS
  • 2. CONTROLE DE VERSÃO Hoje 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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.
  • 7. INSTALANDO O GIT No 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/
  • 8. CONFIGURANDO O GIT Apó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
  • 9. CRIANDO UMA CONTA NO GITHUB Vamos acessar o página do GitHub http://github.com
  • 10. CRIANDO UM REPOSITÓRIO Na tela inicial do GitHub, clique em New Repository
  • 11. CRIANDO UM REPOSITÓRIO Informe o nome do repositório e uma descrição sobre o projeto. Escolha também se esse repositório será publico ou privado.
  • 12. CONFIGURANDO UMA CHAVE SSH Tendo 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
  • 13. CONFIGURANDO UMA CHAVE SSH Agora 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 git@github.com
  • 14. CRIANDO PROJETO LOCAL No terminal vamos criar um diretório para nosso projeto e iniciar um repositório Git: ! mkdir curso-git cd curso-git git init
  • 15. PRIMEIRO COMMIT Vamos agora criar um arquivo e realizar o primeiro commit do nosso projeto: ! touch README git commit -m “Commit inicial"
  • 16. 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
  • 17. ENVIANDO PARA GITHUB Para atualizar o GitHub com o que está no diretório local, digite o comando: ! git push origin master
  • 18. ÁREAS DE OPERAÇÃO Sã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)
  • 19. GIT DIRECTORY O 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.
  • 20. 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
  • 21. STAGING AREA Quando 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.
  • 22.
  • 24. 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 *
  • 25. GIT STATUS Exibe 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 !
  • 26. GIT COMMIT Este 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" !
  • 27. GIT PUSH Este comando vai enviar as alterações do repositório local para o repositório remoto se um estiver configurado ! Sintaxe: git push origin master !
  • 28. GIT PULL Este 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 !
  • 29. GIT LOG Com 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 !
  • 30. GIT DIFF Podemos 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 !
  • 31. GIT RESET Este 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
  • 32. GIT CHECKOUT No 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
  • 33. GIT FETCH E GIT RESET Para 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
  • 34. CLONANDO REPOSITÓRIOS Quando 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
  • 35. RAMIFICANDO Branches (“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.
  • 36. CRIANDO UM NOVO BRANCH Para 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
  • 37. LISTANDO BRANCHES Para 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
  • 38. MUDANDO DE BRANCH Para 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
  • 39. BRANCHES SÃO LOCAIS Por 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
  • 40. MESCLANDO BRANCHES Uma 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
  • 41. EXCLUINDO BRANCHES Apó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
  • 42. GITIGNORE Normalmente 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
  • 43.
  • 44. 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
  • 45. THANK YOU Prof. Leonardo Marcelino ! leonardo.marcelino@gmail.com leonardo.marcelino@unifeob.edu.br https://twitter.com/leonardom https://www.facebook.com/leomarcelino