5

Gần đây tôi đã hoàn tất việc hợp nhất một nhánh phát hành để làm chủ và phát triển bằng cách sử dụng jgitflow:release-finish. Việc xây dựng đã thành công.jgitflow: release-finish không xóa chi nhánh phát hành

enter image description here

Nhưng bây giờ tôi đang cố gắng để tạo ra một chi nhánh mới sử dụng jgitflow:releast-start. Nhưng nó đưa ra lỗi dưới đây.

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

Nó hỏi tôi câu hỏi dưới đây khi tôi chạy jgitflow:release-start và tôi đã nhập nó là 1.0.2.

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

Nhưng vẫn đang đưa ra lỗi dưới đây. Tôi bị bối rối.

Câu hỏi:

  • Chúng ta có nên xóa các chi nhánh phát hành-1.0.1 cách thủ công?
  • Nếu có, tôi sẽ mất lịch sử. Có cách nào để bảo tồn điều đó không?
+0

Tôi có thể xác nhận rằng nó đang hoạt động bằng cách xóa tất cả các nhánh (từ xa quá). Tôi đã nghe nói rằng việc có các nhánh phát hành tạm thời là một phần của triết lý Git, vì vậy, có thể nó không phải là xấu để xóa chúng (cũng mã được sáp nhập không bị mất). –

Trả lời

3

1) Chúng ta có nên xóa nhánh phát hành 1.0.1 theo cách thủ công không? 2) Nếu có, tôi sẽ mất lịch sử. Có cách nào để bảo tồn điều đó không?

Theo gitflow, triết lý đằng sau plugin Maven này, chi nhánh phát hành có nghĩa là để được các chi nhánh tạm thời cần được xóa sau:

Bây giờ chúng tôi đang thực sự thực hiện và các chi nhánh phát hành có thể được gỡ bỏ, vì chúng ta không cần nó nữa:

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

thay đổi để chuẩn bị phát hành và complition này sau đó được sáp nhập, vì thế lịch sử thay đổi của nó là trong hầu hết các của các trường hợp không liên quan.

Tuy nhiên, một cách tiếp cận khác có thể là biến thể của gitflow (nhưng rõ ràng không được plugin hỗ trợ trực tiếp): giữ một nhánh phát hành sống lâu, được sử dụng cho tất cả các bản phát hành và rebase từ chi nhánh develop thay vì tạo mới một khi sẵn sàng chuẩn bị/thực hiện một bản phát hành.


Cũng lưu ý rằng mục tiêu release:finish cung cấp một tùy chọn keepbranch:

Cho dù để giữ cho chi nhánh phát hành sau khi kết thúc việc phát hành.

Giá trị mặc định là false, do đó theo mặc định, nó không được giữ nhánh phát hành.

+0

Cảm ơn bạn đã trả lời. Nhưng tôi không nghịch với tùy chọn 'keepbranch'. Nó nên đã xóa các chi nhánh phát hành trên địa phương và từ xa. –

Các vấn đề liên quan