70
Introdução ao Bem vindos!

Introdução ao Git

Embed Size (px)

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.

Citation preview

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! :)