5

Niedawno zakończyłem scalanie gałęzi wydania do wersji głównej i rozwijanie przy użyciu jgitflow:release-finish. Budowa była udana.jgitflow: release-finish nie usuwa gałęzi wydania

enter image description here

Ale teraz staram się tworzyć nowy oddział przy użyciu jgitflow:releast-start. Ale podaje poniżej błąd.

[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] 

Zwróciła mi na poniższe pytanie, kiedy wpadłem jgitflow:release-start i wszedłem jako 1.0.2.

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

Ale nadal daje to błąd poniżej. Jestem zdziwiony.

Pytania:

  • powinniśmy ręcznie usunąć uwalnianiu 1.0.1 Branch?
  • Jeśli tak, utracę historię. Czy istnieje sposób na zachowanie tego?
+0

Mogę potwierdzić, że działa, usuwając wszystkie gałęzie (także zdalnie). Słyszałem, że posiadanie gałęzi wydań tymczasowych jest częścią filozofii Git, więc może nie jest tak źle, aby je usunąć (również kod połączony nie jest tracony). –

Odpowiedz

3

1) Czy należy ręcznie usunąć gałąź wydania-1.0.1? 2) Jeśli tak, stracę historię. Czy istnieje sposób na zachowanie tego?

Według gitflow, filozofia tej wtyczki Maven, gałęzie uwalnianiu mają być tymczasowe branże, które powinny zostać usunięte potem:

Teraz jesteśmy naprawdę zrobione i oddział uwalnianiu może być usunięte, ponieważ nie trzeba go już:

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

zmiany przygotowania uwalniania i complition są następnie połączone, stąd historia jego zmian jest w większości przypadków nieistotnych.

jednak inne podejście jest możliwe, ponieważ wariant gitflow (ale oczywiście nie jest bezpośrednio obsługiwany przez wtyczkę): zachować długą gałąź zwalniającą dzienny, stosowany we wszystkich wersjach i rebase go z develop oddziału zamiast tworzyć nowy jeden, gdy jest gotowy do przygotowania/wykonania wydania.


Należy również pamiętać, że celem release:finish zapewnia keepbranch opcję:

czy zachować gałąź zwalniania po zakończeniu zwolnienia.

Wartość domyślna to false, dlatego domyślnie nie powinna ona zachować gałęzi wydania.

+0

Dzięki za odpowiedź. Ale nie mam do czynienia z opcją 'keepbranch'. Powinien usunąć gałąź wydania na poziomie lokalnym i zdalnym. –