Há dois tipos principais de modelo de desenvolvimento com os quais é possível usar pull requests. No fork e pull model, qualquer um pode bifurcar um repositório existente e fazer push das alterações em sua bifurcação pessoal. Você não precisa de permissão ao repositório de origem para fazer push em uma bifurcação de propriedade do usuário. As alterações podem ser enviadas por pull no repositório de origem pelo mantenedor do projeto. Ao abrir uma pull request propondo alterações a partir de sua bifurcação de propriedade de usuário para um branch no repositório de origem (upstream), você poderá permitir que qualquer pessoa com acesso push ao repositório upstream faça alterações na sua pull request. Esse modelo é popular entre projetos de código aberto, pois ele reduz a resistência de novos contribuidores, além de permitir que as pessoas trabalhem de modo independente sem coordenação inicial.
Dica: Para mais informações sobre código aberto, especificamente como criar e crescer um projeto de código aberto, criamos Guias em Código Aberto que ajudarão você a fomentar uma comunidade de código aberto saudável. Você também pode participar de um curso gratuito GitHub Learning Lab sobre a manutenção de comunidades de código aberto.
No modelo de repositório compartilhado, os colaboradores recebem acesso push a um único repositório compartilhado e branches de tópico são criados quando alterações precisam ser feitas. As pull requests são úteis nesse modelo, uma vez que iniciam a revisão de código e a discussão geral sobre um conjunto de alterações antes que elas sofram merge no branch de desenvolvimento principal. Esse modelo é mais predominante em equipes e organizações pequenas que colaboram em projetos privados.