5

Ultimamente ho completato la fusione di un ramo di rilascio da masterizzare e sviluppare utilizzando jgitflow:release-finish. La build ha avuto successo.jgitflow: release-finish non sta eliminando il ramo di rilascio

enter image description here

Ma ora sto cercando di creare un nuovo ramo utilizzando jgitflow:releast-start. Ma sta dando l'errore qui sotto.

[ERROR] Failed to execute goal external.atlassian.jgitflow:jgitflow-maven-plugin:1.0-m5.1:release-start (default-cli) on project <XXXXXXX>: Error starting release: Error starting release: a release branch [refs/remotes/origin/release/1.0.1] already exists. Finish that first! -> [Help 1] 

Mi hanno chiesto alla domanda qui sotto, quando mi sono imbattuto jgitflow:release-start e sono entrato come 1.0.2.

What is the release version for "XXXXXXX"? (org.XXX.automation:XXXXXXX) [1.0.2]: 1.0.2 

Ma ancora sta dando l'errore di sotto. Sono confuso.

Domande:

  • Dovremmo eliminare il ramo di release-1.0.1 manualmente?
  • Se sì, perderò la cronologia. C'è un modo per preservarlo?
+0

Posso confermare che funziona cancellando tutti i rami (anche da remoto). Ho sentito dire che avere i rami di rilascio temporanei fa parte della filosofia di Git quindi, forse non è poi così male eliminarli (anche il codice unito non va perso). –

risposta

3

1) Dovremmo eliminare il ramo di release-1.0.1 manualmente? 2) Se sì, perderò la storia. C'è un modo per preservarlo?

Secondo gitflow, la filosofia alla base di questo plugin Maven, rami di rilascio sono destinate ad essere rami temporanei che dovrebbero essere cancellati in seguito:

Ora siamo proprio a posto e può essere rimosso il ramo di release, dal momento che non serve più:

$ git branch -d release-1.2 
Deleted branch release-1.2 (was ff452fe). 

modifiche per la preparazione e il rilascio complition vengono poi fuse, da qui la storia dei suoi cambiamenti è in più dei casi irrilevanti.

Tuttavia, un approccio diverso è possibile come una variante di gitflow (ma ovviamente non direttamente supportato dal plugin): mantenere un ramo lungo rilascio vivente, utilizzato per tutte le versioni e rebase dal ramo develop invece di creare un nuovo uno quando è pronto per preparare/eseguire un rilascio.


Si noti inoltre che l'obiettivo release:finish fornisce un keepbranch un'opzione:

se mantenere il ramo di release dopo aver terminato il rilascio.

Valore predefinito su false, quindi, per impostazione predefinita, non deve mantenere il ramo di rilascio.

+0

Grazie per la risposta. Ma non sto trafficando con l'opzione 'keepbranch'. Dovrebbe aver cancellato il ramo di rilascio su locale e remoto. –

Problemi correlati