44
Sistema de Controle de Versões (VCS)

Treinamento GIT

Embed Size (px)

Citation preview

Page 1: Treinamento GIT

Sistema de Controle de Versões (VCS)

Page 2: Treinamento GIT

Sistema utilizado para gerenciar

diferentes versões de um arquivo

qualquer.

2Git

Page 3: Treinamento GIT

Backup automático de todos os

arquivos.

Controle de histórico das alterações,

permitindo identificar quem alterou,

quando foi alterado, o que foi alterado e

por que foi alterado.

Marcação e resgate de versões estáveis

(Tags).

Ramificação (Branches).

3Git

Page 4: Treinamento GIT

Centralizado

Distribuído

4Git

Page 5: Treinamento GIT

Repositório fica armazenado em um

único local.

Desenvolvedores ao fazerem

“checkout”, obtêm uma cópia apenas

dos arquivos do repositório.

Ações como commit e visualização do

histórico dependem de acesso à rede.

5Git

Page 6: Treinamento GIT

Cada cópia é um repositório completo.

Desenvolvedores ao fazerem

“checkout”, obtêm um clone do

repositório remoto, contendo inclusive o

histórico e os branches.

Ações como commit e visualização do

histórico independem de acesso à rede,

ou seja, podem ser feitos “offline”.

6Git

Page 7: Treinamento GIT

Sistema de controle de versões

distribuído Open Source.

Inicialmente desenvolvido por Linus

Torvalds com o intuito de controlar o

Kernel do Linux.

Foco em rapidez, eficiência e uso em

grandes projetos.

7Git

Page 8: Treinamento GIT

Android

Eclipse

Linux Kernel

PostgreSQL

Samba

Ruby on Rails

... e muito mais

8Git

Page 9: Treinamento GIT

Branch

Checkout

Commit

Merge

Pull

Push

Show log

Tag

9Git

Page 10: Treinamento GIT

Ramo de desenvolvimento paralelo à

uma linha principal (work).

Git 10

Page 11: Treinamento GIT

O nome de um branch depende do tipo

da solicitação, que pode ser ticket ou

projeto.

Ticket (1 solicitação): ticket[Id da

solicitação]. Ex.: ticket1.

Projeto (conjunto de solicitações): prj[Id

do projeto]marco[Id do marco]. Ex.:

prj1marco1.

Git 11

Page 12: Treinamento GIT

Sempre que o desenvolvimento de um

branch ultrapassar um prazo de 3 dias,

o desenvolvedor deve solicitar a

atualização do mesmo com as últimas

alterações realizadas na work. Este

procedimento visa facilitar a integração,

mantendo os branches sempre

atualizados.

Git 12

Page 13: Treinamento GIT

Diferentemente de um VCS

Centralizado, como o SVN por exemplo,

o checkout não serve para baixar a

cópia de um repositório.

No Git, a função do checkout é

posicionar em um determinado branch.

Ou seja, alternar entre diferentes

branches (ramos) de um mesmo

repositório.

Git 13

Page 14: Treinamento GIT

Diferentemente de um VCS

Centralizado, como o SVN por exemplo,

o commit não envia os arquivos

modificados diretamente para o

servidor.

No Git, o commit é o ato de vincular ao

branch os arquivos que foram

modificados. Ou seja, é uma marcação

de quais arquivos serão enviados ao

repositório remoto quando as alterações

forem empurradas.Git 14

Page 15: Treinamento GIT

Pode ser feito offline, ou seja, não

necessita da rede.

Deve ser utilizado, obrigatoriamente,

antes de tentar empurrar as alterações

para o repositório remoto.

Git 15

Page 16: Treinamento GIT

Processo de integração das alterações

realizadas em um branch com a linha

principal (work), ou atualização de um

branch com as últimas mudanças

disponíveis na linha principal.

Git 16

Page 17: Treinamento GIT

Consiste em puxar para o repositório

local as últimas alterações

disponibilizadas no repositório remoto.

Git 17

Page 18: Treinamento GIT

Consiste em empurrar os commits

realizados no repositório local para o

repositório remoto.

Git 18

Page 19: Treinamento GIT

Consiste em visualizar os commits

realizados, ou seja, visualizar o histórico

das alterações.

Git 19

Page 20: Treinamento GIT

Marcação realizada no repositório para

permitir identificar o estado de um

arquivo em determinado momento.

Git 20

Page 21: Treinamento GIT

É o console onde são utilizados os

comandos do git.

Git 21

Page 22: Treinamento GIT

Configurar um repositório?

Clonar um repositório?

Criar um branch local rastreando um

branch remoto?

Posicionar em um branch local?

Criar um branch local?

Puxar as alterações do repositório

remoto?

Criar um brach remoto?

Git 22

Page 23: Treinamento GIT

Visualizar as alterações?

Realizar um commit?

Visualizar os commits?

Empurrar os commits para o repositório

remoto?

Apagar um branch local?

Apagar um branch remoto?

Pesquisar quais branches existem?

Git 23

Page 24: Treinamento GIT

No git bash, digite:

mkdir ~/.ssh

echo "User = seu_nome.assinatura" >

~/.ssh/config

git config --global user.name

seu_nome.assinatura

git config --global user.email

[email protected]

git config --global color.ui auto

Git 24

Page 25: Treinamento GIT

git config --global i18n.commitencoding

ISO-8859-1

git config --global diff.renamelimit 0

git config --global merge.renamelimit 0

git config --global

branch.autosetuprebase always

git config --global core.excludesfile

gitignore

seu_nome.assinatura

Git 25

Page 26: Treinamento GIT

Crie uma nova pasta

Acesse a nova pasta através do git bash

git clone ssh://10.0.0.3/nome_repositorio

nome_repositoro

Git 26

Page 27: Treinamento GIT

Nome que aparece entre parênteses no

Git Bash.

Git 27

Page 28: Treinamento GIT

git checkout -- track -b nome_branch

origin/nome_branch

nome_branch

Git 28

Page 29: Treinamento GIT

git checkout nome_branch

nome_branch

Git 29

Page 30: Treinamento GIT

git checkout –b nome_branch

nome_branch

Observação: Para realizar o

desenvolvimento não devem ser criados

branches locais, os mesmos devem ser

criados remotamente. Portanto, esta

opção deve ser utilizada somente para

realização de testes ou para posicionar

em uma tag.

Git 30

Page 31: Treinamento GIT

git pull --rebase

Git 31

Page 32: Treinamento GIT

Posicionar no branch work

Puxar as alterações do repositório

remoto

git push origin

work:refs/heads/nome_branch

nome_branch

Observação: Os branches remotos

sempre devem ser criados a partir do

branch work.

Git 32

Page 33: Treinamento GIT

nome_branch

Observação: Utilizando este script, não

é necessário posicionar na work e puxar

manualmente antes de criar o branch

remoto. Além disso, já é criado um

branch local rastreando o branch

remoto. Ou seja, com um único

comando são executados vários

procedimentos automaticamente.

Git 33

Page 34: Treinamento GIT

git status (visualiza os arquivos

modificados)

gitk (visualiza as alterações que foram

realizadas)

TortoiseGit > Check for modifications

Git 34

Page 35: Treinamento GIT

TortoiseGit > Commit

Visualize as alterações, descartando as

que não são necessárias

Marque os arquivos que serão enviados

No campo “message” informe o nome

do branch, seguido de uma descrição

da(s) alteração(ões) que foi(ram)

realizada(s). Em se tratando de projeto,

informe também à qual solicitação o

commit se refere.Git 35

Page 36: Treinamento GIT

gitk

TortoiseGit > Show log

Git 36

Page 37: Treinamento GIT

git push origin nome_branch

nome_branch

Git 37

Page 38: Treinamento GIT

Através do gitk ou TortoiseGit > Show

log, verifique se o branch local, e seu

respectivo branch remoto, estão no

mesmo nível (linha).

Git 38

Page 39: Treinamento GIT

git branch -D nome_branch

nome_branch

Git 39

Page 40: Treinamento GIT

Observação: A exclusão de um branch

remoto somente será realizada

mediante a uma solicitação realizada ao

analista de configuração, pois este

procedimento é realizado diretamente

no repositório remoto.

Git 40

Page 41: Treinamento GIT

git branch (exibe os branches locais)

git branch -a (exibe os branches locais e

remotos)

nome_branch (localiza um

branch específico)

Git 41

Page 42: Treinamento GIT

git remote prune origin

Git 42

Page 43: Treinamento GIT

Git 43

Page 44: Treinamento GIT

Alex Ferreira de Almeida

@alexfdealmeida

skype: alexferreiradealmeida

Git 44