Respostas:
De gitlab "pedido merge" recurso é equivalente a do GitHub "pull request" recurso. Ambos são meios de extrair alterações de outra ramificação ou bifurcação para sua ramificação e mesclar as alterações com o código existente. São ferramentas úteis para revisão de código e gerenciamento de alterações.
Um artigo do GitLab discute as diferenças na nomeação do recurso:
Solicitações de mesclagem ou recebimento são criadas em um aplicativo de gerenciamento git e solicitam que uma pessoa designada mescle duas ramificações. Ferramentas como GitHub e Bitbucket escolhem a solicitação de extração de nome, pois a primeira ação manual seria extrair a ramificação do recurso. Ferramentas como GitLab e Gitorious escolhem a solicitação de mesclagem de nomes, pois essa é a ação final solicitada ao responsável. Neste artigo, vamos nos referir a eles como solicitações de mesclagem.
Uma "solicitação de mesclagem" não deve ser confundida com o git merge
comando Nem uma "solicitação de recebimento" deve ser confundida com o git pull
comando. Ambos os git
comandos são usados nos bastidores em solicitações pull e solicitações de mesclagem, mas uma solicitação de mesclagem / recepção se refere a um tópico muito mais amplo do que apenas esses dois comandos.
Eles são o mesmo recurso
Solicitações de mesclagem ou recebimento são criadas em um aplicativo de gerenciamento git e solicitam que uma pessoa designada mescle duas ramificações. Ferramentas como GitHub e Bitbucket escolhem a solicitação de extração de nome, pois a primeira ação manual seria extrair a ramificação do recurso. Ferramentas como GitLab e Gitorious escolhem a solicitação de mesclagem de nomes, pois essa é a ação final solicitada ao responsável. Neste artigo, vamos nos referir a eles como solicitações de mesclagem.
No meu ponto de vista, eles significam a mesma atividade, mas de perspectivas diferentes:
Pense nisso, Alice faz alguns commit no repositório A, que foi bifurcado no repositório B. de Bob
Quando Alice quer "mesclar" suas alterações em B, ela realmente quer que Bob "retire" essas alterações de A.
Portanto, do ponto de vista de Alice, é uma "solicitação de mesclagem", enquanto Bob a vê como uma "solicitação de extração".
Há uma diferença sutil em termos de gerenciamento de conflitos. Em caso de conflito, uma solicitação de recebimento no Github resultará em uma confirmação de mesclagem na ramificação de destino . No Gitlab, quando um conflito é encontrado, as modificações feitas estão em uma consolidação de mesclagem na ramificação de origem .
Consulte https://docs.gitlab.com/ee/user/project/merge_requests/resolve_conflicts.html
"O GitLab resolve conflitos criando um commit de mesclagem no ramo de origem que não é automaticamente mesclado no ramo de destino. Isso permite que o commit de mesclagem seja revisado e testado antes que as alterações sejam mescladas, impedindo que alterações indesejadas entrem no ramo de destino sem revisar ou quebrar a compilação ".
O GitLab 12.1 (julho de 2019) apresenta uma diferença:
" Mesclar solicitações para problemas confidenciais "
Ao discutir, planejar e resolver problemas confidenciais, como vulnerabilidades de segurança, pode ser particularmente desafiador para projetos de código aberto permanecerem eficientes, pois o repositório Git é público.
A partir da versão 12.1, agora é possível resolver problemas confidenciais em um projeto público em um fluxo de trabalho otimizado usando o botão Criar solicitação de mesclagem confidencial, que ajuda a criar uma solicitação de mesclagem em uma bifurcação privada do projeto.
Consulte " Problemas confidenciais " do problema 58583 .
Um recurso semelhante existe no GitHub, mas envolve a criação de uma bifurcação privada especial, chamada " aviso de segurança do mantenedor ".
Como mencionado nas respostas anteriores, ambos têm quase o mesmo propósito. Pessoalmente, gosto do git rebase e da solicitação de mesclagem (como no gitlab). Isso reduz a carga do revisor / mantenedor, certificando-se de que, ao adicionar a solicitação de mesclagem, o ramo do recurso inclua todas as confirmações mais recentes feitas no ramo principal após a criação do ramo do recurso. Aqui está um artigo muito útil que explica a rebase em detalhes: https://git-scm.com/book/en/v2/Git-Branching-Rebasing