Ho utilizzato git
per un po 'ora principalmente su CLi. Sono l'unica persona
lavorando finora a questo progetto. Ho solo il 1% dimaster
di diramazione e l'1% diproduction
ramo. Il ramo production
è denominato così che tutti i test in quel ramo
passaggio. Lavoro direttamente sul ramo principale.
Recentemente ho avuto un problema che mi ha indotto a pensare che forse non stavo usando
le migliori pratiche. Ho finito di lavorare su featureA
e ho iniziato a lavorare su
%codice%. Mentre lavoravo su featureB
, ho apportato alcune modifiche al codice per
featureB
, ma non ha eseguito i test per featureA
. Più tardi durante l'esecuzione del
prova per featureA
, ho anche deciso di verificare che featureB
funzioni e test
per featureA
ha smesso di funzionare. Questo mi ha spinto a pensare a come sto definendo una funzionalità e forse dovrei essere in grado di isolare il lavoro che faccio su ogni funzione. Questo mi aiuterebbe a capire rapidamente quali cambiamenti hanno portato a questo bug. È solo a posteriori che sto definendo questi come featureA
e featureA
.
Mentre parlavo con altre persone, mi sono reso conto che dovevo usare rami per ogni caratteristica, e quindi unirli mentre completo ogni feaure.
Per capire un flusso di lavoro appropriato, mi sono imbattuto in 2 flussi di lavoro principali:
featureB
proposto da Vincen:
link
e
gitflow
proposto da Github: link
e hanno anche esaminato più altri documenti come:
revisione del codice con git-flow e github ,
confronti dei 2 workslows: link
Da questi, sembra che github-flow
sia troppo di a
in testa, dal momento che sto lavorando da solo. Quindi penso di usare gitflow
.
Domanda
- Capisco che dovrei creare rami fuori dal master, nel flusso
github flow
modello di lavoro. Tuttavia, come si definisce una funzionalità? Perché sto lavorando da solo su questo codebase, ho considerato l'intero pacchetto come una funzione, e che mi ha portato a lavorare su un singolo ramo. Tuttavia, dopo aver letto ilGitHub
eGithhub flow
modelli, sembra che la definizione di funzionalità sia molto più granulare. Non ho trovato una definizione di cosa a caratteristica sta per questi e altri documenti che ho letto finora. Una funzione è una funzione, una classe? Io uso anche il github rilascia periodicamente di archiviare i cambiamenti che ritengo sarebbero utili, ma non lo sono avere tempo ora Dovrei usare i problemi digitflow
per creare problemi, e poi usali per creare funzionalità da loro?