Sono nuovo di git e sto attualmente cercando di imparare il più possibile a riguardo.
Penso che il concetto sia fantastico ed estremamente prezioso per il flusso di lavoro di qualsiasi sviluppatore.
Sono uno scienziato dei dati che programma in R e, data la natura del mio lavoro, lavoro su più progetti contemporaneamente per più persone / dipartimenti.
Trovo che spesso debba passare da un progetto all'altro a causa di query ad hoc / persone che perdono cose / persone che hanno urgentemente bisogno di sapere qualcosa, e come tale mi fa pensare a quale sia la migliore pratica intorno al passaggio < em> rami .
Ciò che mi ha spinto a fare questa domanda è che sto trovando (specialmente di recente) che tendo a modificare diversi file da diversi progetti in un breve lasso di tempo (a volte in 30 minuti posso modificare i file da sei diversi progetti), e poi quando vado a cambiare ramo per lavorare su qualcosa su cui avevo programmato di lavorare, mi viene presentato il problema di immagazzinare o commettere le mie modifiche al ramo corrente prima di poterlo cambiare.
Il problema è che desidero solo trasferire alcune di queste modifiche (di solito solo un singolo file) al ramo specifico su cui sto lavorando attualmente, ma ovviamente non posso cambiare ramo senza stashing o scartando - prima le mie modifiche.
In quanto tale, voglio sapere se è buona / buona pratica eseguire immediatamente nuove modifiche sui rispettivi rami non appena ho finito con loro e poi tornare al mio ramo master
/ other-work
subito dopo o se esiste un altro modo in genere che funziona meglio per la maggior parte delle persone.
La mia domanda è questa: dovrei cambiare ramo ogni volta che ho finito con un progetto / set di modifiche, anche se cambio solo un singolo file, o dovrei fare qualcos'altro?
Ad esempio, se sto lavorando su ProjectX
e poi qualcuno mi chiede di fare qualcosa per loro su ProjectY
, dovrei passare da project-x-branch
a project-y-branch
, apportare le modifiche, confermarle e tornare indietro a project-x-branch
e continua oppure esiste un modo migliore per gestire tali scenari?
L'idea che ho in mente è che quando controllo la mia copia di lavoro, ci sono solo uno o due file da impegnare nel ramo su cui sto lavorando, al contrario di molti che non sono correlati al mio ramo corrente.
Apprezzo che lo stashing sia stato progettato proprio per questo scopo (almeno penso che sia quello a cui serve - per favore correggimi se sbaglio) ma tuttavia ritengo che sia una pratica migliore (idealmente) evitare di nasconderlo del tutto.
Mi aspetto che commettere e cambiare ramo ogni volta che ho finito con un aggiornamento / modifica sia un'abitudine molto semplice e utile da adottare, ma prima di iniziare a implementare questa abitudine, mi piacerebbe davvero sapere se ci potrebbe essere un modo migliore per gestirlo.
Ho controllato il potenziale duplicato di questa domanda e non sembra proprio lo stesso problema perché il mio non è un caso di sperimentare bug, ma più un caso di dover cambiare codice a caso da uno o due progetti (dove non ho necessariamente bisogno di mantenere le modifiche) in quanto non aggiungono valore. Le modifiche sono piccole, come l'estrazione di qualche altra informazione invece di / in aggiunta a ciò che stavano già estraendo.