SlideShare uma empresa Scribd logo
Fernando Oliveira (fernando.oliveira@itec.al.gov.br)
Analista de Sistemas - ITEC
descomplicado
Git Descomplicado
UMA BREVE HISTÓRIA...
LIMPE SUA MENTE DE TUDO QUE
VOCÊ CONHECE SOBRE OUTROS
SISTEMAS DE CONTROLE DE
VERSÃO…
Antes de começar…
GIT NÃO É SUBVERSION
(Thanks God!)
git-scm.com
FEATURES
GIT É UM SISTEMA DE
CONTROLE DE VERSÃO
DISTRIBUÍDO
SISTEMAS DE CONTROLE DE
VERSÃO CENTRALIZADO
SISTEMAS DE CONTROLE DE
VERSÃO DISTRIBUÍDO
“SNAPSHOTS”, AO INVÉS DE “DIFERENÇAS”
CONCEITUALMENTE, GRANDE PARTE
DOS OUTROS SISTEMAS ARMAZENAM
INFORMAÇÃO COMO UMA LISTA DE
ARQUIVOS BASEADOS EM MUDANÇAS
GIT PENSA SEUS DADOS MAIS COMO
UM CONJUNTO DE SNAPSHOTS DE
UM MINI SISTEMA DE ARQUIVOS
QUASE TODA OPERAÇÃO É LOCAL
A maioria das operações no Git só precisa de arquivos e
recursos locais para ser executada
GIT GARANTE INTEGRIDADE
Tudo no Git é “check-summed”
OS TRÊS ESTADOS
CONFIGURAÇÕES…
Sua identificação
$ git config --global user.name “Fernando Oliveira”
$ git config --global user.email
fernandooliveira@nyxk.com.br
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.
Seu editor
$ git config --global core.editor emacs
Sua “DiffTool”
$ git config --global merge.tool vimdiff
Verificando suas configurações
$ git config –list
Ou uma chave específica
$ git config user.name
Estas configurações também
podem ser feitas editando o
arquivo ~ /. gitconfig
Buscando ajuda
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
Inicializando um repositório Git em um diretório existente
$ git init
Clonando um repositório existente
$ git clone <repository address>
GRAVANDO MUDANÇAS NO
REPOSITÓRIO
Verificando o status dos seus arquivos
$ git status
”Tracking” novos arquivos ou ”Staging” arquivos modificados
$ git add
Visualizando mudanças “Staged” e “Unstaged”
$ git status
$ git diff
$ git diff --cached
Submetendo suas alterações
$ git commit
$ git commit –m ‘some message’
$ git commit –a
$ git commit –am ‘some message’
Git Descomplicado
Removendo arquivos
$ git rm <file>
$ git rm --cached <file>
Movendo arquivos
$ git mv file_from file_to
Isto é equivalente a
$ mv file_from file_to
$ git rm file_from
$ git add file_to
Visualizando o histórico de commits
$ git log
$ git log --stat
$ git log –graph
$ gitk
DESFAZENDO COISAS
Alterando seu último commit
$ git commit --amend
“Unstaging” um arquivo “Staged”
$ git reset HEAD <file>
Revertendo modificações em um arquivo
$ git checkout -- <file>
TRABALHANDO COM REPOSITÓRIOS
REMOTOS
Clonando
$ git clone <endereço do repositório>
Visualizando
$ git remote
$ git remote -v
Adicionando repositórios remotos
$ git remote add <remote_name> <remote_address>
Buscando e puxando do repositório remoto
$ git fetch [remote-name]
$ git pull [remote-name]
Enviando para o repositório remoto
$ git push origin master
Inspecionando um repositório remoto
$ git remote show origin
Removendo e renomeando repositórios remotos
$ git remote rename from_name to_name
$ git remote rm name
TAGGING
Tipos de tag
LightWeight tags
Annotated tags
Listando suas tags
$ git tag
Criando annotated Tags
$ git tag -a v1.4 -m 'my version 1.4’
CriandoLightweight Tags
$ git tag v1.4-lw
Verificando Tags
$ git show v1.4
Tagging Later
$ git tag -a v1.2 -m 'version 1.2' 9fceb02
Compartilhando Tags
$ git push origin v1.5
$ git push origin --tags
BRANCHING
Visualizando Branchs
$ git branch
$ git branch -v
Criando Branchs
$ git branch <nome_do_branch>
$ git checkout -b <nome_do_branch>
Submetendo alterações no novo branch
$ git commit -a -m ’<mensagem>’
Mudando de branch
$ git checkout <nome_do_branch>
Merging
$ git merge <nome_do_branch>
Entendendo melhor o merge
Excluíndo
$ git branch -d <nome_do_branch>
REBASING
Git Descomplicado
Git Descomplicado
Excluíndo
$ git rebase <nome_do_branch>
ATENÇÃO
Não faça rebase de commits que você enviou para um
repositório público.
STASHING
Criando
$ git stash
Listando stashs
$ git stash list
Recuperando stashs
$ git stash apply
THE END!

Mais conteúdo relacionado

PPTX
Git - Rápido, seguro, eficiente
PDF
Android: Aplicações de Alto Impacto - GDG Maceió
PDF
Android lollipop, o que há de novo?
PPTX
Git para não manjadores
PDF
Minicurso GIT 2022 - SENAC
PDF
Minicurso GIT Completo (2022)
PDF
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
PDF
github-git-cheat-sheet.pdf
Git - Rápido, seguro, eficiente
Android: Aplicações de Alto Impacto - GDG Maceió
Android lollipop, o que há de novo?
Git para não manjadores
Minicurso GIT 2022 - SENAC
Minicurso GIT Completo (2022)
Viajando no Tempo com GIT: Controle de versão para quem quer dormir em paz
github-git-cheat-sheet.pdf

Semelhante a Git Descomplicado (20)

PDF
Conhecendo o GIT
PDF
Git
PDF
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
PDF
ODP
Introdução ao git
PPTX
Git - Não perca o que estava funcionando!
PPTX
Conhecendo o git.
PDF
Git e GitHub
PDF
Use o git e perca o medo de errar
PDF
EIIFRO2014 - Desenvolvimento Colaborativo de Software
PDF
Aprendendo Git
PDF
**Apostila de Introdução ao Git em PDF**
PDF
Git workshop
PPT
GIT SCM
PDF
Introdução ao Git - Semac 2016
PDF
Curso front-end - Aula 003 - Comandos git
PDF
Git na prática - Minicurso III SEICOM
PPTX
Git - Sistema Descentralizado de Controle de Versões
PDF
Git controlo de_versoes
Conhecendo o GIT
Git
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Introdução ao git
Git - Não perca o que estava funcionando!
Conhecendo o git.
Git e GitHub
Use o git e perca o medo de errar
EIIFRO2014 - Desenvolvimento Colaborativo de Software
Aprendendo Git
**Apostila de Introdução ao Git em PDF**
Git workshop
GIT SCM
Introdução ao Git - Semac 2016
Curso front-end - Aula 003 - Comandos git
Git na prática - Minicurso III SEICOM
Git - Sistema Descentralizado de Controle de Versões
Git controlo de_versoes
Anúncio

Último (16)

PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
Processos na gestão de transportes, TM100 Col18
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PPTX
Arquitetura de computadores - Memórias Secundárias
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Processos na gestão de transportes, TM100 Col18
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Arquitetura de computadores - Memórias Secundárias
Custos e liquidação no SAP Transportation Management, TM130 Col18
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
COBITxITIL-Entenda as diferença em uso governança TI
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Anúncio

Git Descomplicado