SlideShare uma empresa Scribd logo
Git e contribuição para 
projetos Open Source 
Bruno Orlandi
Bruno Orlandi 
● 4º Ano Ciências de Computação 
– ICMC USP 
● PET Computação 
● Gosta de compartilhar 
conhecimento 
● @BrOrlandi
Instalando 
● Instalar o Git: 
sudo apt­get 
install git 
● Instalar o Gitg: 
sudo apt­get 
install gitg 
http://git­scm. 
com
Sobre o Minicurso 
● Não será abordado a parte técnica do Git. 
● Objetivo aprender Git e sua utilidade na 
prática! 
● Dúvidas e correções a qualquer momento!
Conteúdo 
● Visão Geral 
● Comandos Básicos 
● Publicando e Colaborando 
● Trabalho em Equipe 
● Praticar 
● Praticar 
● Praticar
O que é Git-SCM 
● Sistema de Controle de Versão Distribuído 
● SCM → Software Configuration Management 
● Criado por Linus Torvalds (2005) 
● Auxiliar no Desenvolvimento do Linux
Gerência de Configuração de 
Software
Gerência de Configuração de Software 
● Durante o desenvolvimento do software 
queremos saber: 
– O que mudou e quando? 
– Por que mudou? 
– Quem fez a mudança? 
– Podemos reproduzir esta mudança?
Gerência de Configuração de Software 
● Identificação 
● Documentação 
● Controle 
● Auditoria
Gerência de Configuração de Software 
● Artefatos: 
– Código fonte 
– Documentação do Software 
– Manual de Usuário
Problema exemplo 
● Você precisa editar um site hospedado em um 
servidor 
● Você faz o download via FTP 
● Faz as alterações necessárias 
● Manda os arquivos alterados para o servidor 
via FTP
Problema exemplo 
● Agora outro desenvolvedor também deve fazer 
alterações no site 
● Baixa o mesmo arquivo junto com você 
● Edita e manda para o servidor depois de você 
● Sobrescreve suas alterações
Controle de Versão resolve 
● Controle de versão faz o 'merge' entre as 
alterações.
Distribuído
Controle de Versão
Controle de Versão
O que é Github 
● Servidor de repositórios Git 
● Surgiu em 2008 
● +3 milhões de usuários
Estão no Github
Usam Git
Alternativas 
● Subversion (SVN) 
● Mercurial 
● CVS ­Concurrent 
Versioning System 
● Bazaar 
● Git é o mais rápido e eficiente
Servidores 
Servidores/Suporte git Mercurial SVN 
Github V 
Bitbucket V V 
SourceForge V V V 
Google Code V V V
Antes de começar alguns termos técnios!
Termos 
● Repositório: onde são armazenados todos os 
arquivos do projeto. 
● Commit: registro de alterações realizadas. 
Como se fosse um “checkpoint”. 
● Branch: ramificação do projeto, uma linha de 
desenvolvimento diferente
Termos 
● Merge: incorporar alterações realizadas ou 
unir branchs. 
● Fork: bifurcação, uma cópia do projeto. 
Ubuntu é um fork do Debian. 
● Push: enviar as alterações para um repositório 
remoto. 
● Pull e Fetch: baixar as alterações feitas de um 
repositório remoto. Pull realiza o merge.
Vamos começar na prática!
Help 
● Quando precisar de ajuda: 
git help <command>
Configurando 
● Configure seu nome e e­mail: 
git config ­­global 
user.name 
“Meu Nome” 
git config ­­global 
user.email 
meuemail@email.com 
● Configure cores no terminal: 
git config ­­global 
color.ui 
true
Criando o Primeiro Repositório 
git init PrimeiroRepo 
● Será criado o diretório com o novo repositório 
vazio. 
cd PrimeiroRepo 
● Todas as configurações do repositório ficam 
na pasta .git
Crie seu primeiro arquivo 
● Crie um arquivo, edite e adicione ao 
repositório: 
touch PrimeiroArquivo 
gedit PrimeiroArquivo 
git add PrimeiroArquivo 
git commit ­m 
“Criado o primeiro arquivo.”
Estados dos arquivos 
● Não monitorado (untracked) 
● Modificado (modified) 
● Preparado (staged) 
● Consolidado (commited)
Estados dos arquivos
Status dos arquivos 
● Use o comando: 
git status 
● Exibe alterações desde o último commit 
● Exibe os arquivos: 
– Modificados 
– Preparados para o Commit 
– Novos que não estão no repositório
Status dos arquivos 
● Edite o arquivo criado anteriormente 
● Crie um novo arquivo e veja o seu status no 
repositório
Explicando os comandos usados 
git add <lista de arquivos> 
● Adiciona os arquivos novos e modificados na 
Staging Area, preparados para o próximo 
Commit. 
● git add ­­all 
● git add *.txt 
● git add folder/*.txt 
● git add folder/ 
● git add “*.txt”
Explicando comandos usados 
git commit [­m 
“Message”] 
● Registra o commit de todos os arquivos que 
estão na Staging Area. 
● Se o parametro de mensagem não for passado 
abrirá um editor de texto para escrever a 
mensagem 
● git config ­­global 
core.editor 
gedit
Git Workflow 
● Basicamente a maior parte do trabalho com o 
git consiste nestas tarefas: 
– Editar 
– Commitar 
● Exercite estes comandos!
Log e Show 
git log 
● Lista os commits mais recentes. 
git log –pretty=oneline 
git shortlog 
git log ­­author= 
User 
git show [commit] 
● Mostra as alterações de um commit 
● Commit deve ser especificado pela chave
Dif 
git diff 
● Exibir diferenças entre commits e branchs 
git diff [path] 
● Diferença em relação ao stage ou ultimo 
commit 
git diff HEAD~1 HEAD 
● Mostra o que foi alterado no último commit
Ferramenta externa Dif 
git config ­­global 
merge.tool 
git config ­­global 
diff.external 
● Permite usar uma ferramenta externa para 
usar no Diff e no Merge. 
● No Eclipse:
Git Blame 
● Encontrar os culpados pelas alterações em um 
arquivo. 
git blame <arquivo> ­L 
10,15 
● Vai exibir das linhas 10 a 15 quem escreveu 
elas.
Git mv e rm 
● Git não trata automaticamente arquivos 
renomeados ou movidos. 
git mv <path1> <path2> 
git rm <file> 
● Remove um arquivo do repositório. 
● A diferença é que essas alterações já são 
adicionadas ao staging.
Desfazendo alterações 
git checkout ­­< 
path_or_file> 
● Irá desfazer todas as alterações que não 
estejam no Stage desde o último commit. 
git checkout HEAD ­­< 
path_file> 
● Desfazer as alterações desde o último commit 
incluindo o Stage.
Git reset 
git reset <file> 
● Remove um novo arquivo da staging area. 
● Não serve para desfazer alterações, para isso 
use: checkout ­­
Git checkout 
git checkout <commit_id> 
● Irá trocar HEAD para apontar para o commit. 
● Altera o repositório para o estado daquele 
commit. 
● Útil para fazer testes antes e depois de 
alterações. 
git checkout master 
● Para voltar o HEAD à posição normal.
Git Revert 
● Reverter um commit pode ser bastante útil. 
git revert <commit_id> 
● Irá criar um novo commit que desfaz as 
alterações do commit especificado.
Branching 
Criando ramificações do repositório
Branch 
● É uma ramificação do repositório 
● Alterações(commits) ocorrem na branch 
● Muito útil para trabalhos colaborativos 
● Branchs de desenvolvimento facilitam o 
controle 
git branch
Branching 
git branch new_branch 
git checkout new_branch 
● Cria e troca para uma nova branch 
● É possível comparar branchs com diff: 
git diff master new_branch
Merge 
● Uma tarefa muito comum com branchs é 
realizar o merge com outra branch. 
git checkout master 
git merge new_branch 
● Excluir uma branch: 
git branch ­d 
new_branch
Conflitos 
● Conflitos podem acontecer ao unirmos 
alterações 
● Acontecem quando ramificações diferentes 
possuem as mesmas linhas nos mesmos 
arquivos editadas diferentes
Merge com Conflito 
● Ao tentar fazer o Merge se houver conflitos 
será acusado e anotado nos arquivos. 
● O repositório fica em estado aguardando você 
consertar os conflitos manualmente. 
● Após isso deve ser feito um commit indicando 
que o conflito foi resolvido.
Git Rebase 
● Quando a Branch pai sofre alterações e deseja­se 
aplicar estas alterações para Branchs filhas. 
● Branchs filhas devem realizar o rebase: 
git rebase master 
● Pode acontecer conflitos! 
● Diferença do Merge é que adiciona os commits 
antes dos commits da branch.
Git Rebase 
● Quando a Branch pai sofre alterações e deseja­se 
aplicar estas alterações para Branchs filhas. 
● Branchs filhas devem realizar o rebase: 
git rebase master 
● Pode acontecer conflitos! 
● Diferença do Merge é que adiciona os commits 
antes dos commits da branch.
Tag 
● Útil para definir versões estáveis do projeto. 
● Semelhante a Branch porém não sofre mais 
alterações. 
● Guarda o estado atual da branch. 
git tag [nome da tag] 
git push <remote> <tag>
Interfaces Gráficas GUI 
● Pelo terminal se faz tudo. 
● Interfaces gráficas ajudam na visualização e 
auxiliam em algumas tarefas. 
● Recomendadas: 
– Egit – Plugin para Eclipse 
– Gitg – Para Linux 
– SourceTree – Para Windows 
● Não Recomendado: Github for Windows
Github e Remotes
Remote 
● Repositório remoto, hospedado em um 
servidor. 
● São referenciados por uma URL. 
● Vamos trabalhar com repositório remoto no 
Github. 
● Outra opção interessante Bitbucket.
Remote 
● Podem receber vários commits. 
● Sincronizar o trabalho colaborativo. 
● Exige chave SSH. 
git remote add origin <URL>
Criar conta no Github 
● Acessem https://github.com/ 
● Criem uma conta utilizando utilizando o 
mesmo e­mail 
configurado no git config. 
● Github permite autenticação por chaves SSH. 
Use isto!
Criar um repositório remoto 
● Crie um repositório no Github. 
● Inicialize um repositório local. 
● Configure o repositório remoto. 
● Crie um arquivo README.md 
● Faça o upload das alterações.
Push 
● Enviar alterações (commits) de uma branch 
para o repositório remoto. 
● A primeira vez: 
git push ­u 
origin master 
● O envio é rejeitado se o repositório local não 
estiver sincronizado. 
git push <remote> <branch> 
git push
Pull 
● Baixa as alterações do repositório remoto e 
realiza o Merge automático com o repositório 
local. 
● Mantém o repositório sincronizado com os 
últimos commits de uma branch. 
● Permite baixar novas branchs que não foram 
criadas localmente. 
git pull 
git pull <remote> <nova>
Git Clone 
● Baixa o repositório remoto. 
● Outra forma de criar um repositório local. 
● Já vem com o remote configurado. 
git clone <URL>
Fork no Github 
● Copia um repositório remoto de outro usuário 
para o seu usuário no Github. 
● É assim que começa a contribuição para 
outros projetos. 
● Você teria uma cópia independente do 
repositório original, podendo fazer quaisquer 
alterações.
Issues no Github 
● Tradução: Questões. 
● Reportar bugs. 
● Organizar tarefas a serem feitas. 
● Permite comentários dos usuários. 
● Pode referenciar commits.
Pull Request 
● O grande simbolo de colaboração. 
● É quando você solicita que sua alterações 
sejam unidas a uma branch no mesmo 
repositório ou a um repositório que sofreu o 
fork. 
● Pull request podem ser comentados e 
referenciados no Github. 
● Muito útil para o trabalho colaborativo.
Vamos praticar mais!
Caso de Exemplo 
● Extensão para GNOME: Desktop Scroller. 
● Cria uma borda de rolagem entre os Desktops. 
● Permite configurar onde a borda é ativa. 
● Hoje mantido por outros usuários.
Extras 
● .gitignore 
● Git commit ­­ammend 
● Git Stash e Stash Pop 
● Milestones 
● Hooks 
● Github pages
Dúvidas?
Contato 
● @BrOrlandi 
● brorlandi@gmail.com 
● www.slideshare.net/BrunoOrlandi
Obrigado! 
http://goo.gl/XEsbPQ

Mais conteúdo relacionado

PDF
Aula 6 - Curso Git e Github - Webschool
PDF
Aula 3 - Curso Git e Github - Webschool
PDF
Aula 5 - Curso Git e Github - Webschool
PDF
Aula 2 - Curso Git e Github - Webschool
PDF
Aula 4 - Curso Git e Github - Webschool
PDF
Git para Designers
PDF
Git e contibuição com projetos open source usando GitHub
ODP
Git - GitHub
Aula 6 - Curso Git e Github - Webschool
Aula 3 - Curso Git e Github - Webschool
Aula 5 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
Aula 4 - Curso Git e Github - Webschool
Git para Designers
Git e contibuição com projetos open source usando GitHub
Git - GitHub

Mais procurados (20)

PDF
Como participar de projetos Open Source no Github?
PPTX
Treinamento - Iniciando no Git e Github by Leandro Alves
PDF
PDF
Introdução ao Git
PDF
Git ...ftw!
PDF
Github para colaboradores livres
PDF
Aula 1 - Curso Git e Github - Webschool
PDF
Introdução ao GitHub e Git
PPTX
Gerenciando projetos com Git e GitHub
PDF
Git e GitHub
PDF
Apresentação de Git
PDF
Git e Gitlab para Iniciantes
PPT
Git e GitHub - Conceitos Básicos
PDF
Learn about Git - Git Tutorial
PPTX
Git e github
PPTX
PDF
Use o git e perca o medo de errar
PDF
Controle de versão com git
PPTX
Ferramentas para versionamento Utilizando git
Como participar de projetos Open Source no Github?
Treinamento - Iniciando no Git e Github by Leandro Alves
Introdução ao Git
Git ...ftw!
Github para colaboradores livres
Aula 1 - Curso Git e Github - Webschool
Introdução ao GitHub e Git
Gerenciando projetos com Git e GitHub
Git e GitHub
Apresentação de Git
Git e Gitlab para Iniciantes
Git e GitHub - Conceitos Básicos
Learn about Git - Git Tutorial
Git e github
Use o git e perca o medo de errar
Controle de versão com git
Ferramentas para versionamento Utilizando git
Anúncio

Destaque (6)

PDF
[CEFETMG] - Introdução ao Github
PPTX
Iniciando Yeoman
PDF
Iniciando com Yeoman, Grunt e Bower
PDF
Os camaradas Grunt e Bower
PDF
Mantendo seu trabalho a salvo com git
PDF
Palestra UFPR - Intro Ionic framework + WordPress
[CEFETMG] - Introdução ao Github
Iniciando Yeoman
Iniciando com Yeoman, Grunt e Bower
Os camaradas Grunt e Bower
Mantendo seu trabalho a salvo com git
Palestra UFPR - Intro Ionic framework + WordPress
Anúncio

Semelhante a Minicurso GIT PET Computação (20)

PPTX
Git - Sistema Descentralizado de Controle de Versões
PPTX
Desmistificando a ferramenta git
PPTX
GIT - Hands-On
PDF
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
KEY
Git para quem vem do SVN
PDF
Controle de versionamento com Git
PDF
Minicurso GIT 2022 - SENAC
PDF
Aula de git luiza code - Slides git e github
PDF
Controle de Versão Distribuído com Git básico
PDF
GIT Básico
PDF
GitHub_versao2024-githubGitHub_versao2024-github
PPTX
Introdução ao git
PDF
Minicurso GIT Completo (2022)
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PDF
Usando Git na Unity - Gaming For All 2021
PDF
Rogue Snail Talk - Usando Git na Game Jam - WGJ
PDF
Controle de versão e colaboração com Git
PDF
Git 101
Git - Sistema Descentralizado de Controle de Versões
Desmistificando a ferramenta git
GIT - Hands-On
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git para quem vem do SVN
Controle de versionamento com Git
Minicurso GIT 2022 - SENAC
Aula de git luiza code - Slides git e github
Controle de Versão Distribuído com Git básico
GIT Básico
GitHub_versao2024-githubGitHub_versao2024-github
Introdução ao git
Minicurso GIT Completo (2022)
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Usando Git na Unity - Gaming For All 2021
Rogue Snail Talk - Usando Git na Game Jam - WGJ
Controle de versão e colaboração com Git
Git 101

Último (11)

PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Utilizando code blockes por andre backes
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Design - Introdução a Gestalt e teoria das formas
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Tipos de servidor em redes de computador.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Viasol Energia Solar -Soluções para geração e economia de energia
Utilizando code blockes por andre backes
Arquitetura de computadores - Memórias Secundárias
Design - Introdução a Gestalt e teoria das formas
Eng. Software - pontos essenciais para o início
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Manejo integrado de pragas na cultura do algodão
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Tipos de servidor em redes de computador.pptx

Minicurso GIT PET Computação

  • 1. Git e contribuição para projetos Open Source Bruno Orlandi
  • 2. Bruno Orlandi ● 4º Ano Ciências de Computação – ICMC USP ● PET Computação ● Gosta de compartilhar conhecimento ● @BrOrlandi
  • 3. Instalando ● Instalar o Git: sudo apt­get install git ● Instalar o Gitg: sudo apt­get install gitg http://git­scm. com
  • 4. Sobre o Minicurso ● Não será abordado a parte técnica do Git. ● Objetivo aprender Git e sua utilidade na prática! ● Dúvidas e correções a qualquer momento!
  • 5. Conteúdo ● Visão Geral ● Comandos Básicos ● Publicando e Colaborando ● Trabalho em Equipe ● Praticar ● Praticar ● Praticar
  • 6. O que é Git-SCM ● Sistema de Controle de Versão Distribuído ● SCM → Software Configuration Management ● Criado por Linus Torvalds (2005) ● Auxiliar no Desenvolvimento do Linux
  • 8. Gerência de Configuração de Software ● Durante o desenvolvimento do software queremos saber: – O que mudou e quando? – Por que mudou? – Quem fez a mudança? – Podemos reproduzir esta mudança?
  • 9. Gerência de Configuração de Software ● Identificação ● Documentação ● Controle ● Auditoria
  • 10. Gerência de Configuração de Software ● Artefatos: – Código fonte – Documentação do Software – Manual de Usuário
  • 11. Problema exemplo ● Você precisa editar um site hospedado em um servidor ● Você faz o download via FTP ● Faz as alterações necessárias ● Manda os arquivos alterados para o servidor via FTP
  • 12. Problema exemplo ● Agora outro desenvolvedor também deve fazer alterações no site ● Baixa o mesmo arquivo junto com você ● Edita e manda para o servidor depois de você ● Sobrescreve suas alterações
  • 13. Controle de Versão resolve ● Controle de versão faz o 'merge' entre as alterações.
  • 17. O que é Github ● Servidor de repositórios Git ● Surgiu em 2008 ● +3 milhões de usuários
  • 20. Alternativas ● Subversion (SVN) ● Mercurial ● CVS ­Concurrent Versioning System ● Bazaar ● Git é o mais rápido e eficiente
  • 21. Servidores Servidores/Suporte git Mercurial SVN Github V Bitbucket V V SourceForge V V V Google Code V V V
  • 22. Antes de começar alguns termos técnios!
  • 23. Termos ● Repositório: onde são armazenados todos os arquivos do projeto. ● Commit: registro de alterações realizadas. Como se fosse um “checkpoint”. ● Branch: ramificação do projeto, uma linha de desenvolvimento diferente
  • 24. Termos ● Merge: incorporar alterações realizadas ou unir branchs. ● Fork: bifurcação, uma cópia do projeto. Ubuntu é um fork do Debian. ● Push: enviar as alterações para um repositório remoto. ● Pull e Fetch: baixar as alterações feitas de um repositório remoto. Pull realiza o merge.
  • 25. Vamos começar na prática!
  • 26. Help ● Quando precisar de ajuda: git help <command>
  • 27. Configurando ● Configure seu nome e e­mail: git config ­­global user.name “Meu Nome” git config ­­global user.email meuemail@email.com ● Configure cores no terminal: git config ­­global color.ui true
  • 28. Criando o Primeiro Repositório git init PrimeiroRepo ● Será criado o diretório com o novo repositório vazio. cd PrimeiroRepo ● Todas as configurações do repositório ficam na pasta .git
  • 29. Crie seu primeiro arquivo ● Crie um arquivo, edite e adicione ao repositório: touch PrimeiroArquivo gedit PrimeiroArquivo git add PrimeiroArquivo git commit ­m “Criado o primeiro arquivo.”
  • 30. Estados dos arquivos ● Não monitorado (untracked) ● Modificado (modified) ● Preparado (staged) ● Consolidado (commited)
  • 32. Status dos arquivos ● Use o comando: git status ● Exibe alterações desde o último commit ● Exibe os arquivos: – Modificados – Preparados para o Commit – Novos que não estão no repositório
  • 33. Status dos arquivos ● Edite o arquivo criado anteriormente ● Crie um novo arquivo e veja o seu status no repositório
  • 34. Explicando os comandos usados git add <lista de arquivos> ● Adiciona os arquivos novos e modificados na Staging Area, preparados para o próximo Commit. ● git add ­­all ● git add *.txt ● git add folder/*.txt ● git add folder/ ● git add “*.txt”
  • 35. Explicando comandos usados git commit [­m “Message”] ● Registra o commit de todos os arquivos que estão na Staging Area. ● Se o parametro de mensagem não for passado abrirá um editor de texto para escrever a mensagem ● git config ­­global core.editor gedit
  • 36. Git Workflow ● Basicamente a maior parte do trabalho com o git consiste nestas tarefas: – Editar – Commitar ● Exercite estes comandos!
  • 37. Log e Show git log ● Lista os commits mais recentes. git log –pretty=oneline git shortlog git log ­­author= User git show [commit] ● Mostra as alterações de um commit ● Commit deve ser especificado pela chave
  • 38. Dif git diff ● Exibir diferenças entre commits e branchs git diff [path] ● Diferença em relação ao stage ou ultimo commit git diff HEAD~1 HEAD ● Mostra o que foi alterado no último commit
  • 39. Ferramenta externa Dif git config ­­global merge.tool git config ­­global diff.external ● Permite usar uma ferramenta externa para usar no Diff e no Merge. ● No Eclipse:
  • 40. Git Blame ● Encontrar os culpados pelas alterações em um arquivo. git blame <arquivo> ­L 10,15 ● Vai exibir das linhas 10 a 15 quem escreveu elas.
  • 41. Git mv e rm ● Git não trata automaticamente arquivos renomeados ou movidos. git mv <path1> <path2> git rm <file> ● Remove um arquivo do repositório. ● A diferença é que essas alterações já são adicionadas ao staging.
  • 42. Desfazendo alterações git checkout ­­< path_or_file> ● Irá desfazer todas as alterações que não estejam no Stage desde o último commit. git checkout HEAD ­­< path_file> ● Desfazer as alterações desde o último commit incluindo o Stage.
  • 43. Git reset git reset <file> ● Remove um novo arquivo da staging area. ● Não serve para desfazer alterações, para isso use: checkout ­­
  • 44. Git checkout git checkout <commit_id> ● Irá trocar HEAD para apontar para o commit. ● Altera o repositório para o estado daquele commit. ● Útil para fazer testes antes e depois de alterações. git checkout master ● Para voltar o HEAD à posição normal.
  • 45. Git Revert ● Reverter um commit pode ser bastante útil. git revert <commit_id> ● Irá criar um novo commit que desfaz as alterações do commit especificado.
  • 47. Branch ● É uma ramificação do repositório ● Alterações(commits) ocorrem na branch ● Muito útil para trabalhos colaborativos ● Branchs de desenvolvimento facilitam o controle git branch
  • 48. Branching git branch new_branch git checkout new_branch ● Cria e troca para uma nova branch ● É possível comparar branchs com diff: git diff master new_branch
  • 49. Merge ● Uma tarefa muito comum com branchs é realizar o merge com outra branch. git checkout master git merge new_branch ● Excluir uma branch: git branch ­d new_branch
  • 50. Conflitos ● Conflitos podem acontecer ao unirmos alterações ● Acontecem quando ramificações diferentes possuem as mesmas linhas nos mesmos arquivos editadas diferentes
  • 51. Merge com Conflito ● Ao tentar fazer o Merge se houver conflitos será acusado e anotado nos arquivos. ● O repositório fica em estado aguardando você consertar os conflitos manualmente. ● Após isso deve ser feito um commit indicando que o conflito foi resolvido.
  • 52. Git Rebase ● Quando a Branch pai sofre alterações e deseja­se aplicar estas alterações para Branchs filhas. ● Branchs filhas devem realizar o rebase: git rebase master ● Pode acontecer conflitos! ● Diferença do Merge é que adiciona os commits antes dos commits da branch.
  • 53. Git Rebase ● Quando a Branch pai sofre alterações e deseja­se aplicar estas alterações para Branchs filhas. ● Branchs filhas devem realizar o rebase: git rebase master ● Pode acontecer conflitos! ● Diferença do Merge é que adiciona os commits antes dos commits da branch.
  • 54. Tag ● Útil para definir versões estáveis do projeto. ● Semelhante a Branch porém não sofre mais alterações. ● Guarda o estado atual da branch. git tag [nome da tag] git push <remote> <tag>
  • 55. Interfaces Gráficas GUI ● Pelo terminal se faz tudo. ● Interfaces gráficas ajudam na visualização e auxiliam em algumas tarefas. ● Recomendadas: – Egit – Plugin para Eclipse – Gitg – Para Linux – SourceTree – Para Windows ● Não Recomendado: Github for Windows
  • 57. Remote ● Repositório remoto, hospedado em um servidor. ● São referenciados por uma URL. ● Vamos trabalhar com repositório remoto no Github. ● Outra opção interessante Bitbucket.
  • 58. Remote ● Podem receber vários commits. ● Sincronizar o trabalho colaborativo. ● Exige chave SSH. git remote add origin <URL>
  • 59. Criar conta no Github ● Acessem https://github.com/ ● Criem uma conta utilizando utilizando o mesmo e­mail configurado no git config. ● Github permite autenticação por chaves SSH. Use isto!
  • 60. Criar um repositório remoto ● Crie um repositório no Github. ● Inicialize um repositório local. ● Configure o repositório remoto. ● Crie um arquivo README.md ● Faça o upload das alterações.
  • 61. Push ● Enviar alterações (commits) de uma branch para o repositório remoto. ● A primeira vez: git push ­u origin master ● O envio é rejeitado se o repositório local não estiver sincronizado. git push <remote> <branch> git push
  • 62. Pull ● Baixa as alterações do repositório remoto e realiza o Merge automático com o repositório local. ● Mantém o repositório sincronizado com os últimos commits de uma branch. ● Permite baixar novas branchs que não foram criadas localmente. git pull git pull <remote> <nova>
  • 63. Git Clone ● Baixa o repositório remoto. ● Outra forma de criar um repositório local. ● Já vem com o remote configurado. git clone <URL>
  • 64. Fork no Github ● Copia um repositório remoto de outro usuário para o seu usuário no Github. ● É assim que começa a contribuição para outros projetos. ● Você teria uma cópia independente do repositório original, podendo fazer quaisquer alterações.
  • 65. Issues no Github ● Tradução: Questões. ● Reportar bugs. ● Organizar tarefas a serem feitas. ● Permite comentários dos usuários. ● Pode referenciar commits.
  • 66. Pull Request ● O grande simbolo de colaboração. ● É quando você solicita que sua alterações sejam unidas a uma branch no mesmo repositório ou a um repositório que sofreu o fork. ● Pull request podem ser comentados e referenciados no Github. ● Muito útil para o trabalho colaborativo.
  • 68. Caso de Exemplo ● Extensão para GNOME: Desktop Scroller. ● Cria uma borda de rolagem entre os Desktops. ● Permite configurar onde a borda é ativa. ● Hoje mantido por outros usuários.
  • 69. Extras ● .gitignore ● Git commit ­­ammend ● Git Stash e Stash Pop ● Milestones ● Hooks ● Github pages
  • 71. Contato ● @BrOrlandi ● brorlandi@gmail.com ● www.slideshare.net/BrunoOrlandi