Esiste uno scopo per utilizzare le richieste pull sul mio repository personale se sono l'unico sviluppatore?

34

Quindi ho iniziato con un mio vero progetto su GitHub e le cose stanno andando abbastanza bene e le idee stanno scorrendo molto più velocemente di prima pensiero. Per mantenere le cose organizzate, ho impostato alcuni rami in modo da poter sviluppare separatamente diverse funzionalità.

Ora quando spingo il mio ramo su GitHub, ho quella sezione in cui ho due pulsanti: Pull Request e Compare con il nome del ramo che ho spinto di recente. Comprendo lo scopo del pulsante Compare ma non capisco perché vorrei creare una richiesta di pull sul mio repository.

Qualcuno può spiegarmi perché lo farei? È utile effettuare richieste di pull sul mio repository se sono l'unico sviluppatore?

    
posta marco-fiset 05.12.2012 - 17:42
fonte

6 risposte

25

Per molti (forse la maggior parte) singoli sviluppatori che lavorano da soli, la creazione di richieste pull non è probabilmente la pena. Tuttavia, posso pensare ad almeno un potenziale motivo per farlo:

Le richieste di pull possono essere utilizzate per tenere traccia della cronologia del progetto più facilmente. Una richiesta pull ha un ID di problema a cui è possibile fare riferimento da messaggi di commit e in un log delle modifiche, che consente di tornare facilmente e trovare il punto di unione e il set di commit uniti per una particolare modifica, senza dover conservare la funzionalità rami indefinitamente.

Ad esempio, in Pioneer (plug vergine), quando uniamo una richiesta pull, aggiungiamo un elemento a changelog , con una descrizione di una riga della modifica e un riferimento all'ID della richiesta di pull. Naturalmente, Pioneer ha diversi sviluppatori, ma lo stesso meccanismo potrebbe essere utile per uno sviluppatore che lavora da solo.

Questo può essere meno utile se si decide di attenersi a una cronologia di commit lineare (ridefinendo i rami delle funzionalità prima dell'unione, in modo che l'unione possa sempre essere eseguita come avanzamento rapido) e se si è molto disciplinati sull'editing e schiaccia i tuoi commit prima di unirli al master, perché in quel caso i singoli messaggi di commit possono essere usati come log delle modifiche in se stessi.

    
risposta data 06.12.2012 - 10:33
fonte
8

Le richieste di pull vengono create in modo che qualcuno possa rivedere il lavoro, creare commenti, suggerimenti, apportare o richiedere modifiche e quindi unire il codice da masterizzare.

Nel tuo caso, qualcuno sei tu.

Come unico sviluppatore, dovresti comunque rivedere il tuo lavoro, rifattorizzarlo e unirlo a master quando è pronto.

Un approccio che uso molto è cercare di "indossare un altro cappello", "provare altre persone". Quindi siediti per un po 'e mettiti nella situazione di: novizio del gruppo; sviluppatore junior; collega che hai rispettato in passato, ecc. Prova a guardarlo attraverso i loro occhi e prova a pensare semplicemente a cosa potresti fare per rendere il cambiamento più ovvio, meglio scritto con nomi ancora migliori che eviti il più possibile la conoscenza del dominio e del dominio. .

Quindi, come hai indicato, dovresti lavorare nei rami quando vuoi separare funzionalità e modifiche che non sono pronte per il master. Puoi fare tutto ciò nelle filiali (non hai nemmeno bisogno di richieste di pull per gestirle se esegui comunque le attività di PR, ma potrebbe fornirti una struttura utile).

Inoltre, a volte scoprirò che il mio cambiamento non funziona, ma piuttosto che l'orrore di provare a tirarlo fuori dal master, forse ora mescolato con altre modifiche principali, posso semplicemente fare tutto in un ramo che può quindi ignorare / eliminare se inizia a andare storto. Questo è un enorme vantaggio.

Quindi dovresti lavorare nelle filiali e non eseguire il commit direttamente sul master finché non decidi di unire l'intero ramo.

Queste sono le linee guida, e non le regole, da seguire. Li spezzo intenzionalmente a volte. Ad esempio, ieri ho commesso una correzione errata al master.

    
risposta data 19.08.2015 - 12:31
fonte
3

Sembra che tu abbia filiali remote e filiali locali. Se trovi troppo spesso il sovraccarico di quel flusso di lavoro, puoi sempre lavorare su diverse funzionalità utilizzando le filiali locali senza doverle spingere.

In pratica si tratta di fare ciò che funziona per te. Lavorare con le filiali è un grande vantaggio per git, e github lo rende davvero facile, ma come sviluppatore solitario non c'è un grande bisogno di usare il modello di richiesta di pull e commettere direttamente sul master dovrebbe funzionare bene. Quando il tuo progetto diventa incredibilmente efficace e decine o centinaia di sviluppatori ci stanno lavorando, scoprirai che ricevere le richieste pull dalle loro biforcazioni è un ottimo modo per tenere traccia del progetto.

    
risposta data 05.12.2012 - 18:11
fonte
0

Le richieste pull di solito vengono utilizzate sia per le revisioni del codice sia per i contributi degli utenti con il proprio fork del progetto - per un singolo sviluppatore su un progetto non vedo davvero uno scopo.

    
risposta data 06.12.2012 - 10:00
fonte
0

Il motivo per cui lo faccio, è che è un modo conveniente per assicurarsi che tutti i controlli automatici passino (compila, ha una formattazione corretta, i test unitari passano ...).

Non ho necessariamente bisogno di tutti i controlli da passare per ogni commit, ma voglio che il capo del ramo principale controlli sempre. Penso che le richieste pull siano semplici (forse non l'unica).

Più in generale, è un modo per connettere gli hook per completare le modifiche. I test sono un esempio; @John ha menzionato la creazione di note di rilascio come un altro esempio.

    
risposta data 04.04.2018 - 10:44
fonte
-2

Le richieste di pull vs git push alla fine arrivano a una cronologia singola o condivisa. Il repository principale è la fonte di tutte le modifiche, se altri ne derivano e potenzialmente possono apportare modifiche locali, quindi una richiesta push può causare problemi a tali utenti come l'albero derivante dalle modifiche.

Il modello di richiesta di pull (da filiali personalizzate o repository personali) serve come modo per fornire una cronologia coerente per tutti quelli che utilizzano e derivano dal codice.

Parte del motivo per cui stai mettendo il codice su github sarebbe quello di rendere il codice disponibile per la forgiatura, e tirare le richieste. Non hai mai saputo quando accadrà e mantenere coerenti le storie dei tuoi co-sviluppatori sarebbe un grande vantaggio.

    
risposta data 21.07.2015 - 06:49
fonte

Leggi altre domande sui tag