O documento descreve o processo de desenvolvimento usando Git, GitHub, Jenkins e BluePill na Samba Tech, incluindo o uso de feature branches, pull requests e hot fixes. É explicado como criar e alternar entre branches, fazer commit e push das modificações, realizar merge e rebase, testar features, criar release notes e colocar código em produção. Também são respondidas perguntas frequentes sobre como ir para revisões específicas e duas pessoas trabalharem em uma feature de forma independente.
6. Por quê usar feature branches?
- Branches são “baratos”
- Separação do código das features
- Facilidade para QA garantir que a feature está funcionando
- Fácil gerenciamento da release
- ...
14. O que o merge faz?
- Um novo commit é criado no HEAD do stack de
•
commits, marcando o momento em que duas cabeças
distintas foram transformadas em uma só.
16. Vantagem do Merge
- Maior facilidade para entender quando uma cabeça foi
•
mesclada com outra.
17. O que o rebase faz?
•
- Recorta o commit – o commit perde a referência do
parent.
•
- Aplica todas as modificações com as quais você
está fazendo o rebase.
•
- Cola suas modificações em cima desta nova base,
com novo SHA1 – ou seja, um novo commit.
38. FAQ
•
Qual a melhor forma de ir para uma revisão específica e
depois retornar para a minha revisão (parece algo
simples, mas já tive problema com isso)?
39. FAQ
•
Qual a melhor forma de ir para uma revisão específica e
depois retornar para a minha revisão (parece algo
simples, mas já tive problema com isso)?
•
$ git branch branchname <sha1-of-commit>
•
$ git branch branchname HEAD~3
40. FAQ
O git é um sistema de versionamento distribuído.
Qual a melhor forma de duas pessoas
trabalharem em uma feature
de forma independente da equipe?
O HG permite push e pull de um repositório que esteja
•
na máquina de um dos desenvolvedores por exemplo.
Mas acho que no GIT o mais indicado é criar um brach
remoto neste caso (já li que existe um tipo específico
de branch pra isso). Certo?
41. FAQ
•
Como faço para ver o que foi mudado no meu branch
remoto, sem atualizar meu branch atual?
42. FAQ
•
Como faço para ver o que foi mudado no meu branch
remoto, sem atualizar meu branch atual?
•
$ git fetch && git log ..origin/master --oneline
43. FAQ
Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas,
voltar ao estado antes das modificações. Qual o comando?
44. FAQ
Fiz pull, realizei um monte de modificações. Quero
simplesmente "desistir" delas, voltar ao estado antes das
modificações. Qual o comando?
Se estiver no working directory:
$ git checkout -- <file>
Se já tiver dado “add” (staging):
$ git reset HEAD <file>
Se já tiver commitado:
$ git reflog
$ git reset --hard HEAD@{1}