Use o git e perca o medo de errar
-
Upload
bruno-calheira -
Category
Technology
-
view
180 -
download
1
Transcript of Use o git e perca o medo de errar
Bruno Calheira
Use o Git e perca o Medo de Errar
Quem é Bruno Calheira?
● Baiano● Matemático, Especialista em
Engenharia de Software● Técnico Judiciário do TJ-BA● Delegado Sindical● Consultor e Desenvolvedor Web
Freelancer apaixonado por Softwares Livres
As FALHAS de hoje são os
degraus para o SUCESSO de
amanhã.
“O sucesso é 1% de inspiração
e 99% de transpiração.”
Thomas Edson
E se pudéssemos
voltar atrás e
corrigir os erros?
Sistemas de Controle de Versões
SCV
Sistemas de Controle de Versões
armazenam as alterações feitas em um
conjunto de arquivos ao longo do tempo,
permitindo que, posteriormente, você
retorne estes arquivos aos seus estados
anteriores.
Eficiência
Vantagens de usar um SCV
Eficiência● Economia de Espaço
Vantagens de usar um SCV
Eficiência● Economia de Espaço
● Padronização das Informações a
respeito de cada versão
Vantagens de usar um SCV
Eficiência● Economia de Espaço
● Padronização das Informações a
respeito de cada versão
● Destaca as diferenças de cada
versão salva
Vantagens de usar um SCV
Vantagens de usar um SCV
Segurança
Vantagens de usar um SCV
Segurança● Funciona como Backup
Vantagens de usar um SCV
Segurança● Funciona como Backup
● Permite recuperar arquivos
apagados por acidente
Vantagens de usar um SCV
Segurança● Funciona como Backup
● Permite recuperar arquivos
apagados por acidente
● Permite recuperar versões
anteriores de um arquivo
Vantagens de usar um SCV
Colaboração
Vantagens de usar um SCV
Colaboração● Múltiplos usuários podem
trabalhar em um mesmo arquivo
simultaneamente
Vantagens de usar um SCV
Colaboração● Múltiplos usuários podem
trabalhar em um mesmo arquivo
simultaneamente
● Saber: quem alterou o quê,
quando e como
Principais SCV
Principais SCV
Principais SCV
Conhecendo o Git
Open Source
Conhecendo o Git
Distribuído
Cada usuário possui um
repositório completo.
Vocabulário
Repositório
Espécie de Banco de Dados onde o SCV armazena as versões e os metadados destas versões.
Nos SCV Centralizados
existe uma única cópia
do Repositório
armazenada no Servidor
O Git é um SVC Distribuído.
Cada usuário possui um
repositório completo.
Conhecendo o Git
Rápido
Reduz a necessidade de
conexão com o servidor.
Git - Trabalhando Off-line
● Ver o histórico
● Comparar diferenças
● Confirmar alterações
● ...
Conhecendo o Git
Fácil Aprendizado
Comunidade ativa e
amigável.
Git na Prática
Instalando o Git
git-scm.com
Quem tem medo do terminal?
git-scm.com/downloads/guis
Git na Prática
Configurando o Git
Comando
git config
Configura o git
~ >
~ > git config --global user.name “Fulano de Tal”
~ >
~ > git config --global user.name “Fulano de Tal”
~ > git config --global user.email [email protected]
~ >
~ > git config --list
~ > git config --listuser.name=Fulano de Tal
core.editor=nano -wl1
color.ui=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
~ >
Git na Prática
Criando um Repositório
~ > cd Sites #entra no diretório Sites
~/Sites >
~ > cd Sites #entra no diretório Sites
~/Sites > mkdir acaraqueijo #cria diretorio
~ > cd Sites #entra no diretório Sites
~/Sites > mkdir acaraqueijo #cria diretorio
~/Sites > cd acaraqueijo
~/Sites/acaraqueijo >
~ > cd Sites #entra no diretório Sites
~/Sites > mkdir acaraqueijo #cria diretorio
~/Sites > cd acaraqueijo
~/Sites/acaraqueijo > touch index.html #cria arquivo
Comando
git init
Inicia um repositório
~/Sites/acaraqueijo > git init
~/Sites/acaraqueijo > git initInitialized empty Git repository in
/Users/brunocalheira/Sites/acaraqueijo/.git/
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git initInitialized empty Git repository in
/Users/brunocalheira/Sites/acaraqueijo/.git/
~/Sites/acaraqueijo > ls #listar conteúdo
~/Sites/acaraqueijo > git initInitialized empty Git repository in
/Users/brunocalheira/Sites/acaraqueijo/.git/
~/Sites/acaraqueijo > ls #listar conteúdo
index.html
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > ls -a #listar ocultos. .. .git index.html
~/Sites/acaraqueijo >
Git na Prática
Rastreando Arquivos
Comando
git status
Verifica o status dos arquivos
~/Sites/acaraqueijo > git status
~/Sites/acaraqueijo > git statusOn branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to
track)
~/Sites/acaraqueijo >
Comando
git add
Adiciona arquivos ao Stage
Diretório de Trabalho
Área de Staging
RepositórioGit
Diretório de Trabalho
Área de Staging
RepositórioGit
git add
~/Sites/acaraqueijo > git add index.html
~/Sites/acaraqueijo > git add index.html
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git add index.html
~/Sites/acaraqueijo > git status
~/Sites/acaraqueijo > git add index.html
~/Sites/acaraqueijo > git statusOn branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: index.html
~/Sites/acaraqueijo >
Comando
git commit
Confirma o registro de uma versãodo projeto no repositório
Diretório de Trabalho
Área de Staging
RepositórioGit
git commit
~/Sites/acaraqueijo > git commit -m "Versão Inicial"
~/Sites/acaraqueijo > git commit -m "Versão Inicial"[master (root-commit) ba338c4] Versão Inicial
1 file changed, 15 insertions(+)
create mode 100644 index.html
~/Sites/acaraqueijo >
Comando
git log
Consulta os commits realizados
~/Sites/acaraqueijo > git logcommit ba338c4f76e5b6acd8846e24443abd49050d8105
Author: Bruno Calheira <[email protected]>
Date: Sun May 24 17:01:14 2015 -0300
Versão Inicial
~/Sites/acaraqueijo >
Vocabulário
Commit Hash
Identificador único de cada commit.Composto por 40 caracteres usando uma função de checksum.
Git na Prática
Alterando o projeto
~/Sites/acaraqueijo > git status Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working
directory)
modified: index.html
Untracked files:
(use "git add <file>..." to include in what will be committed)
style.css
no changes added to commit (use "git add" and/or "git commit -a")
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git add .
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git add .
~/Sites/acaraqueijo > git statusOn branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: index.html
new file: style.css
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git commit -m "Adiciona Folha de Estilos"
~/Sites/acaraqueijo > git commit -m "Adiciona Folha de Estilos"[master 0bab0e3] Adiciona Folha de Estilos
2 files changed, 12 insertions(+)
create mode 100644 style.css
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git log --oneline
~/Sites/acaraqueijo > git log --oneline0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo >
Git na Prática
Ramificando o projeto
Comando
git branch
exibe, cria e deleta ramos
~/Sites/acaraqueijo > git branch
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo > git branch
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo > git branch figura
* master
~/Sites/acaraqueijo >
Comando
git checkout
Carrega um arquivoCarrega um ramo
Carrega uma versão
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo > git branch figura
* master
~/Sites/acaraqueijo > git checkout figura
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo > git branch figura
* master
~/Sites/acaraqueijo > git checkout figuraSwitched to branch 'figura'
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git branch * master
~/Sites/acaraqueijo > git branch figura
~/Sites/acaraqueijo > git branch figura
* master
~/Sites/acaraqueijo > git checkout figuraSwitched to branch 'figura'
~/Sites/acaraqueijo > git branch* figura
master
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git add .
~/Sites/acaraqueijo > git commit -m "Adiciona Foto"
~/Sites/acaraqueijo > git add .
~/Sites/acaraqueijo > git commit -m "Adiciona Foto"[figura 0ba52ff] Adiciona Foto
2 files changed, 1 insertion(+)
create mode 100644 acaraqueijo.jpg
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git log --oneline0ba52ff Adiciona Foto
0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git log --oneline0ba52ff Adiciona Foto
0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo > git checkout master
Switched to branch 'master'
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git log --oneline0ba52ff Adiciona Foto
0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo > git checkout master
Switched to branch 'master'
~/Sites/acaraqueijo > git log --oneline
~/Sites/acaraqueijo > git log --oneline0ba52ff Adiciona Foto
0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo > git checkout master
Switched to branch 'master'
~/Sites/acaraqueijo > git log --oneline0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo >
Comando
git merge
Agrega as versões de outro ramono ramo atual
~/Sites/acaraqueijo > git merge figura
~/Sites/acaraqueijo > git merge figura
Updating 0bab0e3..0ba52ff
Fast-forward
acaraqueijo.jpg | Bin 0 -> 50510 bytes
index.html | 1 +
2 files changed, 1 insertion(+)
create mode 100644 acaraqueijo.jpg
~/Sites/acaraqueijo >
~/Sites/acaraqueijo > git merge figura
Updating 0bab0e3..0ba52ff
Fast-forward
acaraqueijo.jpg | Bin 0 -> 50510 bytes
index.html | 1 +
2 files changed, 1 insertion(+)
create mode 100644 acaraqueijo.jpg
~/Sites/acaraqueijo > git log --oneline
~/Sites/acaraqueijo > git merge figura
Updating 0bab0e3..0ba52ff
Fast-forward
acaraqueijo.jpg | Bin 0 -> 50510 bytes
index.html | 1 +
2 files changed, 1 insertion(+)
create mode 100644 acaraqueijo.jpg
~/Sites/acaraqueijo > git log --oneline0ba52ff Adiciona Foto
0bab0e3 Adiciona Folha de Estilos
ba338c4 Versão Inicial
~/Sites/acaraqueijo >
Git na Prática
Repositórios Remotos
GitLab.com
Bitbucket.com
GitHub.com
Comando
git remote
lista, adiciona, remove repositórios remotos
~/Sites/acaraqueijo > git remote add origin https:
//github.com/calheira/acaraqueijo.git
~/Sites/acaraqueijo >
Comando
git push
Envia as atualizações do repositório local
para o repositório remoto
~/Sites/acaraqueijo > git remote add origin https:
//github.com/calheira/acaraqueijo.git
~/Sites/acaraqueijo > git push -u origin master
~/Sites/acaraqueijo > git remote add origin https:
//github.com/calheira/acaraqueijo.git
~/Sites/acaraqueijo > git push -u origin master Counting objects: 11, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (11/11), 50.42 KiB | 0 bytes/s, done.
Total 11 (delta 2), reused 0 (delta 0)
To https://github.com/calheira/acaraqueijo.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
~/Sites/acaraqueijo >
https://github.com/calheira/acaraqueijo
Git & WordPress
Git & WordPress
Utilize o .gitignore para excluir os aquivos e diretórios sensíveis.
Git & WordPress
Use o git controlar apenas arquivos que você altera com frequência.
Git & WordPress
Use o git controlar apenas arquivos que você altera com frequência.
Controle apenas seuTema Filho.
Git & WordPress
Para controlar o BD utilize o plugin Revisr.
revisr.io
Onde aprender mais?
http://git-scm.com/book/pt-br/v1
Obrigado
pela atenção!