Credo che tu ti stia riferendo alle richieste di pull (PR) che tu inserisci nel tuo ramo principale. Le richieste pull sono il modo standard di persone che hanno escluso (biforcato) il codice per poi eseguire il commit al ramo principale. Generalmente un PR dovrebbe risolvere un bug o aggiungere una funzionalità. Solitamente ciò viene ottenuto utilizzando i branch delle funzionalità sul codice biforcuto e quindi creando una richiesta pull su quel ramo quando la funzionalità è completata. Questo rende la fusione molto più semplice e significa che se lavori su più funzionalità e una viene rifiutata ma l'altra è accettata, le loro filiali non entrano in collisione.
Quindi per rispondere alla tua domanda su chi dovrebbe crearli, di solito sono le persone che hanno biforcato il tuo codice. Questo potrebbe anche essere persone nel tuo team di sviluppo, se è così che scegli di lavorare. L'area principale in cui funziona è con progetti pubblici open source. Ad esempio, openssl ha un github pubblico che chiunque può biforcare, e quindi se qualcuno volesse aggiungere una funzione o correggere un bug, lo farebbe: fork, branch, commit, push e submit un PR.
Una volta creato un PR, il ciclo di vita necessario dipende da voi. Non è predefinito In generale, il minimo che devi fare è: decidi se il bug o la funzione è utile, controlla il codice per assicurarti che faccia quello che dice e sia scritto bene e soddisfi tutti gli standard di codifica stabiliti per il tuo progetto e, se è buono, accetta e unirlo.
È possibile rendere il ciclo di vita più complicato facendolo passare a un ramo di sviluppo per essere testato dai tester con altre funzionalità di sviluppo prima di essere unito al master ma in realtà è compito dell'utente trovare un flusso di lavoro che funzioni per il progetto .
Solo una nota: le richieste di pull possono richiedere la fusione del codice in qualsiasi ramo, non solo il ramo principale. (Nulla è particolarmente speciale nel master in git.) Ad esempio, potrei inviare una richiesta pull per correggere un bug in un ramo di rilascio; allo stesso modo, potrei inviare una richiesta di pull per correggere un bug in un branch di funzionalità. – Thanatos