Guia Git

June 7, 2019 | Author: Izabella Melendez Conigliaro | Category: Email, Graphical User Interfaces, Login, Java (Programming Language), Computer Data
Share Embed Donate


Short Description

Guia para Git...

Description

Abril de 2016

Guia Básico para Git Conceitos e comandos

Izabella Melendez Conigliaro IOASYS

Guia Básico para Git

Introdução

Sumário Introdução ..................................................................................................................................... 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 Interação com o Repositório ..................................................................................................... 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

GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

1

Guia Básico para Git

Introdução

Introdução Git é uma ferramenta de versionamento. Benefícios: 



Dá segurança ao programador para alterar códigos funcionais e/ou códigos de terceiros (não são necessários comentários para “salvar” a versão anterior do código) Facilita manutenção

Conceitos Principais Commit Unidade de mudança. Deve ser conciso e coeso e, de preferência, pequeno. Representa uma versão estável/compilável do código.

Mensagem de commit Constituída pelo título de resumo e por uma mensagem de explicação. O título sempre deve começar com um verbo no presente do imperativo (ex: Corrige, Implementa, Cria, Adiciona). A ideia é que aquele commit realiza aquela ação. Commitregular

Título explicando o que foi feito, mensagem citando e/ou justificando todas as alterações no código. Exemplo:

Implementa função de login na classe LoginActivity. * Cria métodos de validação de entrada. * Adiciona integração com API. * Adiciona endpoint em MyApiInterface.java * Adiciona mensagens de alerta em strings.xml

Commitdebug

Título 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 validação de email no login do usuário. * Ao tentar realizar o login no aplicativo, o usuário recebia uma mensagem de erro de email e/ou senha inválidos mesmo quando os dados estavam corretos. * Em alguns teclados que possuem autocomplete, um espaço era adicionado após o email. Este espaço adicional causava o erro na validação de credenciais. GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

2

Conceitos Principais

Guia Básico para Git

* Ao adicionar a função trim() à variável email, o espaço adicional é retirado e o mesmo pode ser corretamente validado.

Commit WIP (Work In Progress)

Commit que não apresenta uma unidade de alteração ou versão estável, mas é interessante salvar o estado do projeto (ex: fim do expediente ou salvar progressos de implementações complexas). Commits do tipo WIP NUNCA devem aparecer no branch master. Utilizar git reset –soft para desfazer esse tipo de commit. Exemplo:

WIP - integracao de guest list

Branch Um branch para cada feature ou bug (evitar branches próprios - ex: branch chamado izabella). O branch local é o "playground" do programador, sendo o master uma cópia de segurança do projeto. A ideia é que caso algo errado aconteça no branch, o projeto na última versão estável está salvo no branch master.

.gitignore Primeiro arquivo alterado quando se cria um repositório (arquivo já é criado por padrão, porém, encontra-se "escondido"/"invisível"). Indica arquivos que serão ignorados pelo Git (arquivos já monitorados pelo Git não são afetados). Adiciona-se todos os arquivos gerados durante compilação. Para remover um arquivo que já é monitorado pelo Git: git rm → atualiza o .gitignore → git commit 

Exemplo de .gitignore para AndroidStudio:

.gradle /local.properties /.idea/workspace.xml /.idea/libraries .DS_Store /build /captures *.iml /.idea

GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

3

Primeiros Passos

Guia Básico para Git

Primeiros Passos Lidando com Branches 

git branch = apresenta todos os branches locais, destacando o branch atual.



git branch -m "  = renomeia o branch atual



git checkout -b  = cria um novo branch



git branch -d  = deleta um branch que já foi mesclado em master



git branch -D  = deleta um branch não necessariamente foi mesclado

” 

em master Observação:  

Não é possível deletar um branch caso ele seja o branch atual Ao realizar o merge via bitbucket, o Git não identifica que o branch foi mesclado, logo, é necessário deletar utilizando a opção -D.

Construindo um Commit 

 

  

git status = apresenta os arquivos staged (mudanças marcadas), not staged

(mudanças não marcadas) e untracked (não monitorados pelo Git) git add  = marca um arquivo para commit git add -p  = as alterações dos arquivos são apresentadas em partes, sendo que o usuário pode adicionar a parte ao commit, descartar a parte para o commit, ou solicitar que a parte apresentada seja dividida em partes menores. git rm  = remove o arquivo do Git (o arquivo deixa de ser monitorado) git reset HEAD  = desmarca um arquivo para commit git checkout --  = descarta as alterações do arquivo (retorna o arquivo ao estado do último commit)

Observação: 

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 

git commit -m ""  = cria commit apenas com um título de resumo



git commit  = abre o editor de texto padrão do terminal (geralmente nano, vi,



ou vim, pode ser configurado para outros, como sublime) para que o usuário possa digitar o título de resumo e a descrição do commit git commit --amend  = emenda os arquivos marcados para commit no commit diretamente anterior

GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

4

5

Guia Básico para Git

Interação com o Repositório 

git pull  = atualiza o branch local em relação ao branch remoto

Observação:

pullvs.fetch

fetch: baixa e lista todos os commits diferentes entre o branch local e o remoto. Após essa lista de commits, é possível realizar um merge em relação aos commits desejados. pull: combinação dos comandos fetch e merge. Em um comando, ele baixa os commits adicionais e mescla no branch em questão. git merge  = mescla o branch no branch atual git push = envia todos os branches do repositório local para o repositório remoto git push origin  = envia apenas o branch em questão para o repositório remoto git push -f origin  = descarta a cópia do branch no repositório remoto e salva a versão do repositório local  – CUIDADO: sobrescreve a cópia de segurança 



 





Observação: 

SEMPRE realizar git pull antes de git push

Comandos Comandos Úteis 













git diff --  = apresenta as mudanças ocorridas no arquivo em relação ao

estado do mesmo no último commit quando este ainda não foi marcado para commit git diff --cached = apresenta as mudanças de todos os arquivos marcados para commit em relação ao estado dos mesmos no último commit git diff = apresenta as diferenças entre dois branches git show  = apresenta todos os arquivos alterados com suas respectivas mudanças de um commit, além de informações como título, mensagem de commit, data e autor git log = apresenta uma lista cronológica de todos os commits (log), junto com mensagem, descrição e data. git log --graph --all --decorate --abbrev-commit  = apresenta o log de todos os branches do repositório local em forma de árvore, sendo cada nó um commit (válido para analisar onde os branches se divergem e identificar bases) git reflog = log de todos os comandos Git realizados. Possível retornar a qualquer estado do branch antes de realizar um comando (git reset –hard

GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

Comandos

Guia Básico para Git

). Essencial para corrigir erros no uso de comandos mais complexos, como rebase. Isso siginifica que não é necessário ter receio em utilizar as ferramentas do Git, pois praticamente todos os estados de branch - e consequentemente arquivos e commits - são recuperáveis (git push –f origin não pode ser desfeito com o uso do git reflog).

Comandos Mais Complexos Após comandos complexos, é preciso utilizar a opção -f ao realizar um push.

RESET 



git reset --soft  = desfaz todos os commits posteriores ao commit

selecionado. Os arquivos alterados são mantidos, sendo possível refazer os commits (solução para apagar um commit do tipo WIP) git reset --hard  = DELETA todos os commits posteriores ao commit selecionado, inclusive as alterações realizadas nestes commits (solução para retornar a um estado de branch especifico após consultar o reflog)

REBASE 



git rebase --onto  = altera a base de um

branch. A base do branch equivale ao primeiro commit que não pertence ao branch, ou seja, o commit do qual o branch foi criado. A nova base, geralmente, é o commit HEAD de um outro branch (a “ponta” do branch). Comando muito utilizado para resolver problemas de conflitos de merge. git rebase -i HEAD~  = apresenta uma lista de um certo número de commits a partir do commit HEAD. Nesta lista, é possível deletar commits (inclusive suas alterações), realizar reword, squash e fixup, além de alterar a ordem de commits. Reword: altera a mensagem do commit Squash: une o commit abaixo com o commit de cima (une inclusive a mensagem de commit) Fixup: semelhante ao squash, porém, não une a mensagem de commit Para alterar a ordem de commits, basta alterar a ordem das linhas  

 

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 são "escondidos" em um branch temporário 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 temporário 



GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

6

Guia Básico para Git

Conflitos de Merge

Conflitos de Merge Ao ocorrer conflitos de merge, são 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 versão do Git nas máquinas para acessá-lo). Interface simples, apenas para selecionar arquivos e/ou linhas específicas para facilitar a criação dos commits. Para abrir a interface, utilizar o comando git gui . Observação: 

O git gui não aceita qualquer tipo de acentuação. Ao tentar inserir um acento, o programa sofre um crash.

Leituras complementares Tutorial ilustrado https://www.atlassian.com/git/tutorials/what-is-version-control

Poderes do Git: encontrando commits com bug com o gitbisect  https://git-scm.com/docs/git-bisect http://webchick.net/node/99

GUIA BÁSICO PARA GIT

IZABELLA MELENDEZ CONIGLIARO

7

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF