Introdução ao Git
-
Upload
walmyr-carvalho -
Category
Engineering
-
view
189 -
download
4
description
Transcript of Introdução ao Git
![Page 1: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/1.jpg)
Introdução ao
Bem vindos!
![Page 2: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/2.jpg)
Quem é você?
![Page 3: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/3.jpg)
Walmyr Carvalho
@walmyrcarvalho
![Page 4: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/4.jpg)
Instituto Infnet
Desenvolvedor AndroidHotel Urbano
Professor de Desenvolvimento para Plataformas Mobile
![Page 5: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/5.jpg)
O que vamos ver hoje?
![Page 6: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/6.jpg)
• Introdução • Breve histórico de criação do git • Características • Comandos básicos e seus conceitos • Não gosta de Terminal? Apps com GUI! • Links úteis: Livros, cursos e material de estudo
![Page 7: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/7.jpg)
Histórico
![Page 8: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/8.jpg)
Quem criou o git?
![Page 9: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/9.jpg)
Linus TorvaldsCriador do kernel Linux
Criou o Git em 2005
![Page 10: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/10.jpg)
Porquê?
![Page 11: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/11.jpg)
A criação do git começou durante o desenvolvimento do Linux, nenhum
sistema de controle de versão tinha o desempenho ideal para lidar com o
desenvolvimento não linear do projeto, com diversos desenvolvedores no
mundo inteiro!
![Page 12: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/12.jpg)
Por não encontrar nenhum outro sistema rápido, seguro e eficiente o
suficiente para gerenciar um projeto grande como o Linux, Linus criou o
próprio.
![Page 13: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/13.jpg)
Características do git
![Page 14: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/14.jpg)
• Sistema de controle distribuído • Menos suscetível a erros • Funcionamento offline • Projetos menores que o SVN • Área de preparo (staging) • Muito rápido! • Sistema de branches simples e eficiente
![Page 15: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/15.jpg)
Instalação e comandos básicos
![Page 16: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/16.jpg)
Antes de começar, é preciso instalar o git na sua máquina. Faça o download para o seu sistema
operacional no link abaixo: git-scm.com/downloads
![Page 17: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/17.jpg)
Criando um repositório
![Page 18: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/18.jpg)
Ok, agora temos o git instalado! Para iniciar um repositório git no seu projeto,
acesse a raiz da pasta do projeto e execute o comando:
git init
![Page 19: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/19.jpg)
Clonando um repositório
![Page 20: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/20.jpg)
Caso você queira fazer uma cópia de um repositório local, execute o comando:
git clone caminho/do/repositorio
Se o projeto estiver em um repositório remoto, execute o comando:
git clone usuario@server:/caminho/do/repositorio
![Page 21: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/21.jpg)
Workflow do Git
![Page 22: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/22.jpg)
Quando trabalhamos com git, temos em mãos três “árvores" de trabalho no nosso
fluxo local de operações.
![Page 23: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/23.jpg)
A primeira delas é o diretório de trabalho (também chamado de working tree), que é
onde ficam os arquivos do seu projeto.
WORKING
![Page 24: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/24.jpg)
Quando você adiciona algum arquivo alterado (git add), você envia as suas alterações para o Index, que
é como uma área de preparação (staging) das suas alterações.
WORKING INDEX (Staging)
add
![Page 25: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/25.jpg)
E por fim, quando você confirma uma nova alteração (git commit), você envia ela para a
área de HEAD, que é onde está a última confirmação que você fez.
WORKING INDEX (Staging) HEAD
add commit
![Page 26: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/26.jpg)
Adicionando e commitando arquivos
![Page 27: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/27.jpg)
Para adicionar novas alterações no Index, execute o comando:
git add nome_do_arquivo
Caso queira adicionar todas os arquivos alterados do seu repositório:
git add *
![Page 28: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/28.jpg)
O comando add é a primeira coisa que fazemos em um arquivo alterado, mas agora precisamos confirmar essa alteração. Para isso, usamos o comando abaixo:
git commit -m “comentário"
O commit é o que confirma a sua alteração e a envia para HEAD.
![Page 29: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/29.jpg)
Enviando alterações
![Page 30: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/30.jpg)
Agora que suas alterações já estão no HEAD, basta enviá-las para o seu repositório remoto. Para isso, execute o comando:
git push origin master
O master no caso é a sua branch atual, altere para a que desejar.
![Page 31: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/31.jpg)
Caso você queira se conectar a um repositório remoto, basta adicioná-lo com
o comando:
git remote add origin local_do_servidor
![Page 32: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/32.jpg)
O que é uma branch?
![Page 33: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/33.jpg)
Uma branch (ramo ou galho, em inglês) é uma ramificação utilizada quando se deseja criar uma nova funcionalidade
isolada de outras partes do projeto.
![Page 34: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/34.jpg)
Por exemplo: Esse é o master, é a branch padrão de um projeto git. Durante o projeto vamos
precisar criar novas funcionalidades para ele.
master
![Page 35: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/35.jpg)
Quando eu quero desenvolver uma nova funcionalidade, eu crio uma nova branch
com o comando:
git checkout -b nova_branch
O comando acima é um atalho para executar dois comandos:
git branch nova_branch git checkout nova_branch
![Page 36: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/36.jpg)
master
nova_branch
Ou seja, o que você acabou de fazer foi criar uma branch paralela ao master, mas com sua própria timeline de alterações e commits, que deve ser
mesclada ao master quando for concluída.
![Page 37: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/37.jpg)
Ok, feita a nova funcionalidade, precisamos voltar para o master para
mesclá-la com a nossa branch principal. Para isso, execute o comando:
git checkout master
Caso você queira deletar sua branch, utilize o comando:
git branch -d nova_branch
![Page 38: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/38.jpg)
Lembrando que uma branch não está automaticamente disponível para todos
que tem acesso ao seu repositório, é preciso adicioná-la usando o comando:
git push origin nova_branch
![Page 39: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/39.jpg)
Ok, depois de criarmos uma branch nova e ter desenvolvido nossa nova funcionalidade,
precisamos mesclá-la (merge) ao nosso master.
master
nova_branch
merge
![Page 40: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/40.jpg)
Mas antes de fazer o merge de uma nova branch ao master, precisamos atualizar o
nosso repositório puxando possíveis novos commits do nosso repositório remoto. Para isso, utilize o comando:
git pull
![Page 41: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/41.jpg)
Agora sim, temos o nosso repositório atualizado, pronto para receber a nossa
branch. Para fazer o merge dela ao nosso master, utilize o comando:
git merge nova_branch
![Page 42: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/42.jpg)
Lembrando que uma branch geralmente não vive por muito tempo, ao menos que a feature for muito grande. Nesses casos, o
ideal é dividir a feature em branches menores.
![Page 43: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/43.jpg)
Resolvendo conflitos
![Page 44: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/44.jpg)
Infelizmente, durante o merge conflitos podem acontecer. É preciso editar os arquivos e resolvê-los manualmente.
Existem diversas ferramentas gráficas que facilitam essa resolução de conflitos, comumente chamadas de merge tools ou
diff tool.
![Page 45: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/45.jpg)
Caso você queira ver a diferença entre arquivos de branches diferentes, basta
executar o comando:
git diff <branch_origem> <branch_destino>
![Page 46: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/46.jpg)
Tags
![Page 47: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/47.jpg)
Durante um projeto de software, é importante se criar tags para releases de lançamento.
Para criar uma tag no git, usamos o comando:
git tag 1.0.0 1b2e1d63ff
O 1b2e1d63ff é composto pelos 10 primeiros caracteres do id do commit que
você quer referenciar na sua tag.
![Page 48: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/48.jpg)
Você pode conseguir uma lista de ids de commits utilizando o comando:
git log
Ele lista todos os commits do projeto, como um histórico detalhado do que foi
feito em cada um deles.
![Page 49: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/49.jpg)
Links úteis
![Page 50: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/50.jpg)
Serviços web
![Page 54: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/54.jpg)
Aplicativos com GUI (Interface Gráfica)
![Page 55: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/55.jpg)
GitHub(OS X / Windows)
Gratuito!mac.github.com/
windows.github.com/
![Page 58: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/58.jpg)
Git Cola(Linux)
Gratuito e open source!git-cola.github.io/
RabbitVCS(Linux)
Gratuito e open source!rabbitvcs.org/
![Page 59: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/59.jpg)
Projetos usando git
![Page 62: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/62.jpg)
Livros e cursos gratuitos
![Page 63: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/63.jpg)
Git - Guia Prático
rogerdudler.github.io/git-guide
por Roger Dudler, guia open source disponível em português, fonte principal de conteúdo da palestra!
![Page 64: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/64.jpg)
Git - Cheat Sheet
rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf
por Roger Dudler, lista de comandos mais comuns para referência rápida, em inglês
![Page 65: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/65.jpg)
Pro Git
git-scm.com/book/pt-br
Livro oficial do projeto Git, disponível em português
![Page 66: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/66.jpg)
www.git-tower.com/learn
Livro, vídeos e treinamento
Curso - Git Tower
![Page 67: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/67.jpg)
Curso - Try Git | Code School
try.github.io
Curso disponibilizado online gratuitamente, parceria do Code School com o GitHub.
![Page 68: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/68.jpg)
Dúvidas?
![Page 69: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/69.jpg)
Eu ajudo, falem comigo!Twitter: @walmyrcarvalho
Facebook: Walmyr Carvalho Google+: +WalmyrCarvalho
![Page 70: Introdução ao Git](https://reader031.fdocument.pub/reader031/viewer/2022020711/558de7791a28ab2a0c8b45ac/html5/thumbnails/70.jpg)
Obrigado! :)