2016-07-07 22 views
7

Ad esempio, ci sono diverse grandi funzioni: User [necessario sviluppare UserControl, UserModel, UserService] e Admin, Post, Comment.Cosa fai quando trovi un bug in un'altra funzione quando sviluppi una funzione?

Ora siete nel ramo features/post, sviluppando funzioni correlate al post. Ma si riscontrano alcuni bug nelle funzioni correlate a User.

Quindi, in termini di gitflow, qual è il modo consigliato di fare?

  1. aggiungere TODO o Fix me per funzioni relative utente e risolvere il bug dopo l'arrivo lo sviluppo della posta e fuse il codice di padroneggiare?

  2. Stash l postale incompiuta codice relativo, creare un ramo fix, risolvere il bug, fondersi per features/post, riporre pop post incompiuta codice relativo, poi andare avanti?

risposta

3

È possibile correggere liberamente ciò che si desidera, indipendentemente dal fatto che sia correlato all'argomento su cui si sta lavorando.

Quindi utilizzare git commit --patch per aggiungere solo le modifiche che aderiscono all'argomento. (Vale la pena imparare tutti i dettagli di questo flusso di lavoro, incluso come dividere gli hunk in piccole modifiche e come modificare gli hunks che non possono essere suddivisi, ma contenere una combinazione di modifiche volute e indesiderate).

Quando l'argomento viene eseguito viene eseguito utilizzando una o più operazioni git commit --patch, quindi tutto ciò che rimane nella copia di lavoro sono le modifiche fuori tema. A quel punto è possibile git checkout in un altro ramo per impegnare quelli, se appropriato, utilizzando git stash save e git stash pop per aggirare eventuali reclami in caso di modifiche non previste.

Se tutto è nello stesso ramo, forse l'ordine non ha importanza. Puoi solo git commit --patch il bugfix che hai scoperto, quindi continuare con l'argomento. Se la correzione finisce nel mezzo delle correzioni degli argomenti in corso, puoi sempre git rebase -i: rebase in modo interattivo in modo che l'argomento venga eseguito insieme e la correzione del bug incidentale sia prima o dopo.

Nella mia organizzazione software, dovrei creare un ticket e ottenere un numero di bug per questo bugfix incidentale, e inviarlo a Gerrit per la revisione. Se è qualcosa di ovvio che sembra essere approvato rapidamente e facilmente, lo farei prima, prima delle modifiche "pesanti" su cui sto lavorando.

0

io non seguono git-flusso in particolare, ma qui è quello che cerco di fare:

  • Stash, o utilizzare git-worktree.
  • Correggere il bug nel relativo ramo upstream.
  • Unire la correzione nel ramo di lavoro (in genere la rebase più avanti).

In alternativa, si potrebbe inizialmente fissarlo nel ramo corrente come discreto commit, quindi git cherry-pick esso nel ramo a monte e git rebase farlo cadere dal ramo corrente.

1

Non ho trovato che GitFlow lo definisca.

Per quanto mi riguarda, basandomi sugli aspetti critici di BUG, ​​deciderò di risolverlo immediatamente o aggiungere TODO per risolverlo in un secondo momento.

Non lo aggiusto nello stesso ramo con la funzione di sviluppo corrente, perché renderà confusi i miei compagni di squadra quando rileggono il mio codice sorgente.

0

Questa è una domanda basata su un'opinione: git-flow non richiede di risolverlo in un modo particolare.

Normalmente tornerò al ramo di sviluppo, creerò un nuovo ramo di funzionalità, sistemerò il bug lì, poi una volta che sarà fuso in sviluppo, rebase la funzione su cui stavo originariamente lavorando per svilupparla in modo che ora abbia la correzione del bug.

Se il bug è urgente e lo sviluppo non è lo stesso di master, userò un ramo di aggiornamento rapido e di nuovo rebase il ramo in sviluppo una volta che l'hotfix è stato fuso in master e sviluppato.