Como usar o Git (sabor do Google)

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

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

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 loge encontrar seu commit perdido.
se o seu commit ainda estiver irrecuperável, use o recurso lost + found do git