Estou usando o GitHub há algum tempo e normalmente costumo enviar por push meus ramos de recursos e iniciar uma solicitação de recebimento que eu mesclei. Descobri que isso me ajudou a acompanhar onde eu fundei as filiais.
Recentemente, porém, tenho lido cada vez mais sobre como o Git funciona e percebi que posso usar os commits de consolidação para me referir a quando mesclamos ramificações.
Portanto, o que devo fazer ao mesclar uma ramificação de recurso no mestre:
execute uma consolidação de mesclagem no mestre e faça o envio a montante OU Empurre o ramo local e inicie uma solicitação de recebimento?
Li a introdução de solicitações pull para uma equipe de 2 pessoas - mesclar minhas próprias solicitações? e Qual é o fluxo de trabalho com 2 pessoas em um projeto e devo pedidos abra de um ramo no repo oficial ou o garfo? mas nenhum deles parece responder ao que estou procurando.
fonte
Respostas:
mecanismo de git-merge:
Usando
git merge feature
enquanto em mestre se funde o ramofeature
demaster
e produz ummerge-commit
(se o ramo não pode ser avançado rapidamente) na história git. Para forçar umamerge-commit
criação, use a--no-ff
opção commerge
.Mecanismo de solicitação de mesclagem pull:
quando iniciamos uma solicitação pull no GitHub, ele cria um local
GitHub Issue
onde as pessoas podem conversar e discutir os commits no PR antes de mesclá-lo. Quando um PR é mesclado no GitHub, ele faz exatamente a mesma coisa quegit merge feature
.O que devo fazer?
Portanto, no que diz respeito à história, não há diferença entre os dois.
E no que diz respeito à contribuição, seus colaboradores não precisarão de nada diferente para as duas situações. Eles são os mesmos (menos a conversa agradável).
Práticas recomendadas:
E não consegui encontrar as melhores práticas, mas a lógica diz que os PRs não são muito úteis se houver apenas uma pessoa no repositório.
@lxrec e @amon me ajudaram a chegar a essa conclusão.
fonte
git merge
pode não registrar um commit de mesclagem se ele puder fazer um "avanço rápido". Para forçar uma consolidação de mesclagem, você pode adicionar a--no-ff
opçãoComo Ashhar disse, tecnicamente e em termos de história, não há diferença. Para projetos com uma equipe pequena, prefiro mesclar diretamente, em vez da etapa extra de criar um PR. No entanto, quando um recurso precisa de revisão / feedback ou quando é um WIP e mais de uma pessoa está trabalhando nele, costumo abrir um PR e adicionar uma lista de tarefas à descrição do PR.
Observe que
git merge
pode usar o avanço rápido se não houver alterações no mestre, portanto, você pode querer usá-logit merge --no-ff
. Eu costumo não.Portanto, em resumo, use apenas PRs quando precisar de discussão. Caso contrário, basta mesclar diretamente.
fonte