Nota: este é um resumo de diferentes fluxos de trabalho git reunidos em uma pequena bíblia git.
as referências estão entre o texto
Como fazer ramificações
tente manter seu hacking fora do master e crie branches de recursos.
o fluxo de trabalho feature-branch é um bom meio-termo entre noobs (não tenho ideia de como fazer branch) e
veteranos do git (vamos fazer um rocket sience com git branches!). todo mundo pega a ideia!
Exemplos básicos de uso
- Preciso de um novo recurso em meu incrível projeto de software:
git checkout -b feature-better-than-before
- Eu encontrei um bug! eu preciso de 2 consertar isso (regular)
git checkout -b fix-weird-error
- Eu encontrei um bug! eu devo fazer uma solução alternativa (hotfix)
git checkout -b hotfix-weird-error
- Vamos migrar o incrível-lib v1 do meu projeto para v2
git checkout -b chore-migrate-awesome-lib
prefixos permitidos
- talento (recurso)
- correção (correção de bug)
- hotfix (solução alternativa)
- docs (documentação)
- estilo (formatação, ponto e vírgula faltando, )
- refatorar
- teste (ao adicionar testes ausentes)
- tarefa (manter)
- melhorar (melhoria, por exemplo, recurso aprimorado)
Como se comprometer em seu próprio ramo
- Mantenha sua primeira linha de commit curta (cerca de 50 caracteres)
- e as outras linhas também! isso vai te ajudar a melhorar o vim
- use atualização imperativa em vez de atualizado
- use palavras-chave conhecidas, como:
add, update, remove, fix, refactor
Como manter sua filial atualizada
situação inicial
master *---*---*---*
my branch *---*---*
Não mescle! Nós odiamos unir bolhas
pense, antes de puxar as mudanças da origem ou você está se metendo em problemas .
pare de usar a estratégia de mesclagem padronizada paragit pull
isto está errado
master *---*---*---*---*
/
my branch *---*---*
se você precisar de uma atualização do master ou de qualquer outro branch, tente realocar seu branch ao invés de
fundir . tente manter seu histórico de branch separado do master, para que outros possam facilmente seguir uma
linha reta de commits.
isso é o que queremos fazer
master *---*---*---*
my branch --> *---*---*
Então, se você quiser puxar, tente
git pull –rebase
se você quiser atualizar seu trabalho com coisas do mestre
git fetch -a && git rebase master
use mesclar se rebasing estiver perdendo muito tempo
se você estiver enfrentando milhares de conflitos de mesclagem, tente mesclar, mas não mescle em caso de preguiça!
se toda a esperança se for, use o cherry pick como sua última esperança de voltar ao trabalho.
mas use com sabedoria! isso é apenas para usuários avançados: leitura adicional: escolha seletiva vs. fluxo de trabalho de mesclagem
se você terminou de rebase, empurre antes que outra pessoa faça
se você tentar empurrar seu branch com base, seu remoto rejeitará seu comando, porque você mudou o
histórico de seu branch. você precisa fazer um empurrão de força e isso não é exatamente brilhante.
se outras pessoas trabalharem nesse branch também, informe-as sobre seu rebase e verifique, antes de enviar.
seja paciente com seus colegas programadores!
Eu terminei meu trabalho
mescle suas coisas no master sem avanço rápido
isso forçará uma nova mensagem de confirmação e manterá seu branch master limpo.
situação inicial
other branch *---*
/
master *---*-------*---*
my branch *---*---*
git checkout master && git merge master feature-better-than-before –no-ff
other branch *---*
/
master *---*-------*---*-----------*
/
my branch *---*---*
Como escrever um commit de mesclagem
mantenha sua primeira linha significativa! ande pela internet e procure por changelogs de outros
projetos de software. tenha em mente que cada linha do changelog é a primeira linha do seu commit git
- Mantenha sua primeira linha de confirmação curta
- e as outras linhas também! isso vai te ajudar
- use atualização imperativa em vez de atualizado
Use o seguinte modelo (fonte para leitura adicional) :
<prefix of your branch>(<scope>): <subject>
<body>
<footer>
O escopo
tente ter uma ideia dos escopos em seu incrível projeto de software. se você precisar de inspiração:
- iniciar
- config
- a parte dianteira
- Processo interno
o corpo
- inclui motivação para a mudança e contrastes com o comportamento anterior
- adicionar referências (por exemplo, comentários, api, documentos, etc.)
- favorece elegante em vez de fofo. Aja mais como um humano
o rodapé
consulte suas emissões para o sistema de tíquetes (github, gitlab, atlassin etc.)
Closes #123, #245, #992
pare de assinar seu commit …
… se não houver dúvida razoável de confiança !
Se você ainda deseja assinar seus commits , use uma chave GPG para garantir sua
autenticação.
solução de problemas
você não pode destruir nada (se você não remover ou manipular seu .git)
se você perdeu um de seus commits, tente usar git log
e encontrar seu commit perdido.
se o seu commit ainda estiver irrecuperável, use o recurso lost + found do git