Qual è la migliore pratica sull'utilizzo di git / VCS quando si esegue una riscrittura completa del codice?

5

Sono uno scienziato dei dati che programma in R, ma sono relativamente nuovo nell'usare il controllo della versione (sì, lo so!) e sto ancora imparando molto a riguardo.

FYI: utilizzo BitBucket e Sourcetree

Comprendo l'idea generale alla base - che commetti nuovi aggiornamenti / funzionalità / ecc. - e che funge da rete di sicurezza in cui puoi ripristinare funzionalità / codice che altrimenti andrebbero persi / sovrascritti, o persino invertire la tua inversioni se decidi di essere soddisfatto del nuovo codice che hai scritto.

Oggi mi sono reso conto che dovrò riscrivere completamente uno script R che ho (che ho creato / costruito da me stesso - nessun altro collaboratore) perché i requisiti sono ora cambiati in modo significativo e piuttosto che apportare diverse modifiche a il codice esistente (stiamo parlando di circa il 75,00%), sarebbe probabilmente meglio ed efficiente riscriverlo nella sua interezza.

Come tale, vorrei sapere quanto segue: cosa è considerata la migliore pratica in questo caso?

Devo creare un nuovo ramo?

Ho sempre usato solo il ramo principale / principale di git (ti ho detto che ero nuovo a VCS) e stavo pensando che avrei potuto farlo (creare un nuovo ramo) e poi eliminare il contenuto dal mio script esistente e iniziare riscrivendolo nello stesso file (per preservare lo stesso nome file / cronologia quando spingo le modifiche nel mio repository git).

La mia comprensione è che i miei nuovi cambiamenti sono ramificati fuori / fuori dal ramo principale e, se sono felice, posso / dovrei unirli di nuovo nel ramo master nel punto in cui sono felice / sicuro che i cambiamenti sono a posto - è corretto?

O dovrei fare qualcos'altro?

Se è il primo (creazione di un nuovo ramo), come si può tipicamente chiamare un nuovo ramo?

So che non sono l'unica persona che abbia mai avuto bisogno di fare una riscrittura / ricostruzione completa del codice, quindi apprezzerei qualche consiglio qui.

    
posta MusTheDataGuy 11.07.2018 - 17:39
fonte

1 risposta

3

Uno dei grandi vantaggi delle filiali nel mondo degli affari è che ti permette di lavorare su una nuova funzionalità, mentre ti consente di tornare alla versione principale e apportare aggiornamenti se necessario, senza perdere i tuoi progressi. Ad esempio, se stai riscrivendo la home page del tuo sito web, viene scoperto un bug critico che impedisce all'utente di accedere, questo è ciò che puoi fare con un ramo.

  1. Configura il lavoro corrente che hai sulla nuova home page nel tuo ramo.
  2. Ritorna al ramo principale.
  3. Correggere il bug e eseguire il commit della correzione su master, per ottenere rapidamente la soluzione agli utenti.
  4. Torna al nuovo ramo della home page e riprendi a lavorare sulla riscrittura esattamente dove ti eri rimasto.

My understanding is that my new changes are branched off of / away from the master branch and, if I am happy, I can/should merge them back into the master branch at the point where I am happy/confident that the changes are good to go - is that correct?

Hai ragione. Ciò è particolarmente utile se più persone codificano su questo progetto, in quanto una riscrittura potrebbe disturbare i loro progetti. I rami ti danno più controllo su quando una caratteristica viene aggiunta alla base del codice principale. Consente inoltre ai tuoi colleghi di testare più facilmente il tuo ramo / funzione separatamente.

Per un progetto solista che riguarda solo un file con un impatto limitato sul resto dell'applicazione, un ramo potrebbe essere eccessivo. L'utilizzo di un nuovo ramo non causa alcun danno, ma un commit standard per il master mantiene ancora la cronologia dei file e richiede meno tempo e conoscenza di git.

Se la tua riscrittura causa modifiche a molti file, potresti interrompere il flusso di lavoro dei colleghi, o se potresti aver bisogno di mantenere la versione corrente dello script nel frattempo, dovresti prendere in considerazione l'utilizzo di un ramo.

If it is the former (creating a new branch), what might such a new branch typically be called?

In genere un nuovo ramo prende il nome dalla funzione che viene aggiunta da esso. Quindi nell'esempio precedente il ramo potrebbe essere chiamato "Riscritto Home Page HTML5".

    
risposta data 11.07.2018 - 18:06
fonte

Leggi altre domande sui tag