Beruflich Dokumente
Kultur Dokumente
Introduo
Sumrio
Introduo ..................................................................................................................................... 2
Conceitos Principais ...................................................................................................................... 2
Commit ...................................................................................................................................... 2
Mensagem de commit .......................................................................................................... 2
Commit regular ................................................................................................................. 2
Commit de bug .................................................................................................................. 2
Commit WIP (Work In Progress) ....................................................................................... 3
Branch ....................................................................................................................................... 3
.gitignore ................................................................................................................................... 3
Primeiros Passos............................................................................................................................ 4
Lidando com Branches .............................................................................................................. 4
Construindo um Commit ........................................................................................................... 4
Realizando Commit ................................................................................................................... 4
Interao com o Repositrio ..................................................................................................... 5
pull vs. fetch........................................................................................................................... 5
Comandos...................................................................................................................................... 5
Comandos teis ........................................................................................................................ 5
Comandos Mais Complexos ...................................................................................................... 6
RESET ..................................................................................................................................... 6
REBASE .................................................................................................................................. 6
STASH .................................................................................................................................... 6
Conflitos de Merge ........................................................................................................................ 7
Terminal ou Interface? .................................................................................................................. 7
git gui ......................................................................................................................................... 7
Leituras complementares.............................................................................................................. 7
Tutorial ilustrado ....................................................................................................................... 7
Poderes do Git: encontrando commits com bug com o git bisect ............................................ 7
Introduo
Introduo
Git uma ferramenta de versionamento.
Benefcios:
Conceitos Principais
Commit
Unidade de mudana. Deve ser conciso e coeso e, de preferncia, pequeno.
Representa uma verso estvel/compilvel do cdigo.
Mensagem de commit
Constituda pelo ttulo de resumo e por uma mensagem de explicao. O ttulo sempre
deve comear com um verbo no presente do imperativo (ex: Corrige, Implementa,
Cria, Adiciona). A ideia que aquele commit realiza aquela ao.
Commit regular
Ttulo explicando o que foi feito, mensagem citando e/ou justificando todas as
alteraes no cdigo.
Exemplo:
Implementa funo de login na classe LoginActivity.
* Cria mtodos de validao de entrada.
* Adiciona integrao com API.
* Adiciona endpoint em MyApiInterface.java
* Adiciona mensagens de alerta em strings.xml
Commit de bug
Ttulo que resume o bug, mensagem de commit deve explicar 1) o que estava
acontecendo, 2) porque estava acontecendo, 3) como foi corrigido. NUNCA usar algo
como Corrige bug.
Exemplo:
Corrige erro na validao de email no login do usurio.
* Ao tentar realizar o login no aplicativo, o usurio recebia uma mensagem de erro de email
e/ou senha invlidos mesmo quando os dados estavam corretos.
* Em alguns teclados que possuem autocomplete, um espao era adicionado aps o email. Este
espao adicional causava o erro na validao de credenciais.
GUIA BSICO PARA GIT
Conceitos Principais
* Ao adicionar a funo trim() varivel email, o espao adicional retirado e o mesmo pode
ser corretamente validado.
Branch
Um branch para cada feature ou bug (evitar branches prprios - ex: branch chamado
izabella). O branch local o "playground" do programador, sendo o master uma cpia
de segurana do projeto. A ideia que caso algo errado acontea no branch, o projeto
na ltima verso estvel est salvo no branch master.
.gitignore
Primeiro arquivo alterado quando se cria um repositrio (arquivo j criado por
padro, porm, encontra-se "escondido"/"invisvel"). Indica arquivos que sero
ignorados pelo Git (arquivos j monitorados pelo Git no so afetados). Adiciona-se
todos os arquivos gerados durante compilao.
Para remover um arquivo que j monitorado pelo Git:
git rm <file> atualiza o .gitignore git commit
Exemplo de .gitignore para AndroidStudio:
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
*.iml
/.idea
Primeiros Passos
Primeiros Passos
Lidando com Branches
Observao:
Construindo um Commit
Observao:
git add --all (ou -A) = adiciona todos os arquivos (novos, modificados e
deletados)
git add . = adiciona apenas os arquivos novos e modificados
git add -u = adiciona apenas os arquivos modificados
Realizando Commit
Observao:
Observao:
Comandos
Comandos teis
Comandos
RESET
REBASE
STASH
Para realizar comandos como Reset e Rebase, preciso que o ambiente Git esteja
limpo, ou seja, sem arquivos alterados. Para isso, uma forma simples de "limpar" o
ambiente usando stash, no qual os arquivos so "escondidos" em um branch
temporrio do tipo WIP.
git stash = armazena todas os arquivos alterados (stagged, unstagged e
untracked) em um branch do tipo WIP. Assim, o branch atual est "livre"
desses arquivos (livre para realizar comandos mais complexos)
git stash pop = recupera os arquivos que foram anteriormente stashed, deleta
o branch temporrio
Conflitos de Merge
Conflitos de Merge
Ao ocorrer conflitos de merge, so apresentados no terminal, o nome de todos os
arquivos conflitantes. Deve-se abrir a IDE, resolver os conflitos, e realizar:
git commit (adicionar todos os arquivos corrigidos) e em seguida continuar o
comando que gerou conflito, ex: git merge continue
Para cancelar o comando: git merge --abort
Terminal ou Interface?
git gui
Interface nativa do Git, presente a partir do Git 2.0 (provavelmente preciso atualizar
a verso do Git nas mquinas para acess-lo). Interface simples, apenas para
selecionar arquivos e/ou linhas especficas para facilitar a criao dos commits.
Para abrir a interface, utilizar o comando git gui.
Observao:
Leituras complementares
Tutorial ilustrado
https://www.atlassian.com/git/tutorials/what-is-version-control