git descomplicado

72
Fernando Oliveira – [email protected] Analista Desenvolvedor – NYX Knowledge descomplicado

Upload: fernando-oliveira

Post on 24-May-2015

592 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Git Descomplicado

Fernando Oliveira – [email protected] Desenvolvedor – NYX Knowledge

descomplicado

Page 2: Git Descomplicado
Page 3: Git Descomplicado

Uma breve história...

Page 4: Git Descomplicado

Limpe sua mente de tudo que você conhece sobre outros sistemas de controle de versão…

Antes de começar…

Page 5: Git Descomplicado

Git não é Subversion(Thanks God!)

Page 6: Git Descomplicado

git-scm.com

Page 7: Git Descomplicado

Features

Page 8: Git Descomplicado

GIT é um sistema de controle de versão distribuído

Page 9: Git Descomplicado

Sistemas de controle de versão centralizado

Page 10: Git Descomplicado

Sistemas de controle de versão distribuído

Page 11: Git Descomplicado

“Snapshots”, ao invés de “diferenças”

Page 12: Git Descomplicado

Conceitualmente, grande parte dos outros sistemas armazenam informação como uma lista de arquivos baseados em mudanças

Page 13: Git Descomplicado

GIT pensa seus dados mais como um conjunto de snapshots de um mini sistema de arquivos

Page 14: Git Descomplicado

quase toda operação é local

A maioria das operações no Git só precisa de arquivos e recursos locais para ser executada

Page 15: Git Descomplicado

Git garante integridadeTudo no Git é “check-summed”

Page 16: Git Descomplicado

OS três estados

Page 17: Git Descomplicado

Configurações…

Page 18: Git Descomplicado

Sua identificação$ git config --global user.name “Fernando Oliveira”$ git config --global user.email [email protected]

Se você quiser sobrescrever estas configurações com um nome e/ou email diferente(s) para um projeto específico, você pode executar os

mesmos comandos sem a opção --global no repositório específico.

Page 19: Git Descomplicado

Seu editor$ git config --global core.editor emacs

Page 20: Git Descomplicado

Sua “DiffTool”$ git config --global merge.tool vimdiff

Page 21: Git Descomplicado

Verificando suas configurações$ git config –list

Ou uma chave específica$ git config user.name

Page 22: Git Descomplicado

Estas configurações também podem ser feitas editando o arquivo ~ /.

gitconfig

Page 23: Git Descomplicado

Buscando ajuda$ git help <verb>

$ git <verb> --help

$ man git-<verb>

Page 24: Git Descomplicado

Inicializando um repositório Git em um diretório existente

$ git init

Page 25: Git Descomplicado

Clonando um repositório existente

$ git clone <repository address>

Page 26: Git Descomplicado

Gravando mudanças no repositório

Page 27: Git Descomplicado

Verificando o status dos seus arquivos

$ git status

Page 28: Git Descomplicado

”Tracking” novos arquivos ou ”Staging” arquivos modificados

$ git add

Page 29: Git Descomplicado

Visualizando mudanças “Staged” e “Unstaged”

$ git status

$ git diff

$ git diff --cached

Page 30: Git Descomplicado

Submetendo suas alterações

$ git commit

$ git commit –m ‘some message’

$ git commit –a

$ git commit –am ‘some message’

Page 31: Git Descomplicado
Page 32: Git Descomplicado

Removendo arquivos

$ git rm <file>

$ git rm --cached <file>

Page 33: Git Descomplicado

Movendo arquivos

$ git mv file_from file_to

Isto é equivalente a

$ mv file_from file_to

$ git rm file_from

$ git add file_to

Page 34: Git Descomplicado

Visualizando o histórico de commits

$ git log

$ git log --stat

$ git log –graph

$ gitk

Page 35: Git Descomplicado

Desfazendo coisas

Page 36: Git Descomplicado

Alterando seu último commit

$ git commit --amend

Page 37: Git Descomplicado

“Unstaging” um arquivo “Staged”

$ git reset HEAD <file>

Page 38: Git Descomplicado

Revertendo modificações em um arquivo

$ git checkout -- <file>

Page 39: Git Descomplicado

TRAbalhando com repositórios remotos

Page 40: Git Descomplicado

Clonando

$ git clone <endereço do repositório>

Page 41: Git Descomplicado

Visualizando

$ git remote

$ git remote -v

Page 42: Git Descomplicado

Adicionando repositórios remotos

$ git remote add <remote_name> <remote_address>

Page 43: Git Descomplicado

Buscando e puxando do repositório remoto

$ git fetch [remote-name]

$ git pull [remote-name]

Page 44: Git Descomplicado

Enviando para o repositório remoto

$ git push origin master

Page 45: Git Descomplicado

Inspecionando um repositório remoto

$ git remote show origin

Page 46: Git Descomplicado

Removendo e renomeando repositórios remotos

$ git remote rename from_name to_name

$ git remote rm name

Page 47: Git Descomplicado

Tagging

Page 48: Git Descomplicado

Tipos de tag

LightWeight tags

Annotated tags

Page 49: Git Descomplicado

Listando suas tags

$ git tag

Page 50: Git Descomplicado

Criando annotated Tags

$ git tag -a v1.4 -m 'my version 1.4’

Page 51: Git Descomplicado

CriandoLightweight Tags

$ git tag v1.4-lw

Page 52: Git Descomplicado

Verificando Tags

$ git show v1.4

Page 53: Git Descomplicado

Tagging Later

$ git tag -a v1.2 -m 'version 1.2' 9fceb02

Page 54: Git Descomplicado

Compartilhando Tags

$ git push origin v1.5

$ git push origin --tags

Page 55: Git Descomplicado

BRANCHING

Page 56: Git Descomplicado

Visualizando Branchs

$ git branch

$ git branch -v

Page 57: Git Descomplicado

Criando Branchs

$ git branch <nome_do_branch>

$ git checkout -b <nome_do_branch>

Page 58: Git Descomplicado

Submetendo alterações no novo branch

$ git commit -a -m ’<mensagem>’

Page 59: Git Descomplicado

Mudando de branch

$ git checkout <nome_do_branch>

Page 60: Git Descomplicado

Merging

$ git merge <nome_do_branch>

Page 61: Git Descomplicado

Entendendo melhor o merge

Page 62: Git Descomplicado

Excluíndo

$ git branch -d <nome_do_branch>

Page 63: Git Descomplicado

rebasing

Page 64: Git Descomplicado
Page 65: Git Descomplicado
Page 66: Git Descomplicado

Excluíndo

$ git rebase <nome_do_branch>

Page 67: Git Descomplicado

Atenção

Não faça rebase de commits que você enviou para um repositório público.

Page 68: Git Descomplicado

Stashing

Page 69: Git Descomplicado

Criando

$ git stash

Page 70: Git Descomplicado

Listando stashs

$ git stash list

Page 71: Git Descomplicado

Recuperando stashs

$ git stash apply