introdução ao git

70
Introdução ao Bem vindos!

Upload: walmyr-carvalho

Post on 27-Jun-2015

192 views

Category:

Engineering


4 download

DESCRIPTION

Palestra gratuita realizada no dia 16 de abril de 2014, no Instituto Infnet, Rio de Janeiro. Dei uma introdução bem básica sobre git, comandos básicos e mostrei um workflow simples de como se trabalhar com git. Além disso, deixei links de aplicativos e material de estudos para quem quiser aprender mais sobre. -- Free talk that happened on April 16, 2014, in Infnet Institute, Rio de Janeiro. Gave a very basic introduction to git, basic commands and showed a simple workflow of how to work with git. Furthermore, I showed some application links and study material for anyone wanting to learn more about.

TRANSCRIPT

Page 1: Introdução ao Git

Introdução ao

Bem vindos!

Page 2: Introdução ao Git

Quem é você?

Page 3: Introdução ao Git

Walmyr Carvalho

@walmyrcarvalho

Page 4: Introdução ao Git

Instituto Infnet

Desenvolvedor AndroidHotel Urbano

Professor de Desenvolvimento para Plataformas Mobile

Page 5: Introdução ao Git

O que vamos ver hoje?

Page 6: Introdução ao Git

• 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

Histórico

Page 8: Introdução ao Git

Quem criou o git?

Page 9: Introdução ao Git

Linus TorvaldsCriador do kernel Linux

Criou o Git em 2005

Page 10: Introdução ao Git

Porquê?

Page 11: Introdução ao Git

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

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

Características do git

Page 14: Introdução ao Git

• 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

Instalação e comandos básicos

Page 16: Introdução ao Git

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

Criando um repositório

Page 18: Introdução ao Git

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

Clonando um repositório

Page 20: Introdução ao Git

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

Workflow do Git

Page 22: Introdução ao Git

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

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

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

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

Adicionando e commitando arquivos

Page 27: Introdução ao Git

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

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

Enviando alterações

Page 30: Introdução ao Git

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

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

O que é uma branch?

Page 33: Introdução ao Git

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

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

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

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

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

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

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

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

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

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

Resolvendo conflitos

Page 44: Introdução ao Git

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

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

Tags

Page 47: Introdução ao Git

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

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

Links úteis

Page 50: Introdução ao Git

Serviços web

Page 51: Introdução ao Git

GitHubgithub.com

Page 52: Introdução ao Git

BitBucketbitbucket.com

Page 53: Introdução ao Git

GitLabwww.gitlab.com

Sistema similar ao git, porém open source

Page 54: Introdução ao Git

Aplicativos com GUI (Interface Gráfica)

Page 55: Introdução ao Git

GitHub(OS X / Windows)

Gratuito!mac.github.com/

windows.github.com/

Page 56: Introdução ao Git

SourceTree(OS X / Windows)

Gratuito!www.sourcetreeapp.com

Page 57: Introdução ao Git

Tower(OS X)

US$ 60,00 :(www.git-tower.com

Page 58: Introdução ao Git

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

Projetos usando git

Page 60: Introdução ao Git

Node GHnodegh.io

GitHub no terminal, por Zeno Rocha

Page 61: Introdução ao Git

Hub

hub.github.comOutro wrapper para GitHub no Terminal

Page 62: Introdução ao Git

Livros e cursos gratuitos

Page 63: Introdução ao Git

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

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

Pro Git

git-scm.com/book/pt-br

Livro oficial do projeto Git, disponível em português

Page 66: Introdução ao Git

www.git-tower.com/learn

Livro, vídeos e treinamento

Curso - Git Tower

Page 67: Introdução ao Git

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

Dúvidas?

Page 69: Introdução ao Git

Eu ajudo, falem comigo!Twitter: @walmyrcarvalho

Facebook: Walmyr Carvalho Google+: +WalmyrCarvalho

Page 70: Introdução ao Git

Obrigado! :)