Có thể mở lại một chi nhánh kín trong Mercurial?


132

Tôi hiểu rằng có thể đóng một nhánh có tên trong Mercurial, để nó không xuất hiện trong hg branchesdanh sách:

hg commit --close-branch -m 'close badbranch, this approach never worked'

Có thể sau đó mở lại chi nhánh nếu cần?


13
Bạn chỉ cần thử nó, cách tốt nhất để học là thử nghiệm, và vì kho lưu trữ rẻ với Hg, hãy cứ tự nhiên.
Lasse V. Karlsen

1
Bí mật nhỏ bẩn thỉu: một "nhánh" trong Hg speak chỉ là một cách khác để nói "nhãn văn bản được liên kết với một cam kết". Một "nhánh" có thể có nhiều đầu khác nhau cho nhiều cam kết khác nhau không liên quan.
dùng2864740

Câu trả lời:


164

Bạn có thể chỉ cần hg updateđến chi nhánh đã đóng rồi thực hiện việc khác hg commitvà nó sẽ tự động mở lại.

Các closedlá cờ chỉ được sử dụng để lọc ra các chi nhánh khép kín từ hg brancheshg headstrừ khi bạn sử dụng --closedtùy chọn - nó không ngăn cản bạn từ việc sử dụng các chi nhánh.


20
Cam kết sẽ không làm bất cứ điều gì trừ khi có một điều gì đó thực sự cam kết, vì vậy bạn có thể cần phải thực hiện một thay đổi vô cớ để thực hiện.
Francis Upton IV

1
Cảm ơn bạn đã chỉ ra - Tôi cho rằng các thay đổi được ngụ ý bằng cách thực hiện một cam kết, nhưng tất nhiên nếu bạn chỉ muốn xóa cờ đã đóng, bạn không thể thay đổi.
Tim Delaney

3
Một thẻ là đủ để làm cho nó cam kết.
chúa tể

Điều này có thể hoạt động từ giao diện dòng lệnh, tôi chưa thử, nhưng TortoiseHg sẽ không cho phép bạn cập nhật lên một nhánh đóng. Nếu bạn cố gắng làm như vậy, nút Cập nhật sẽ bị vô hiệu hóa. Để làm việc này, tôi phải cập nhật lên chi nhánh trước khi thay đổi gần (hiệu quả là cha mẹ) và sau đó cập nhật lên thay đổi đóng. Điều kỳ lạ là, khi bạn cập nhật lên cha mẹ, TortoiseHg tuyên bố bộ thay đổi gần (con cháu) là cha mẹ. Dù thế nào, nó chỉ hoạt động tốt khi bạn nhảy qua các vòng thích hợp.
DaveN59

Đã sử dụng nó (dòng lệnh thông qua thiết bị đầu cuối trong phpstorm) và hoạt động như một bùa mê, cảm ơn
Mathieu Dierckx

15

Bạn có thể mở lại một chi nhánh bằng cách sử dụng cờ "-f" khi 'tạo' chi nhánh.

Không, lệnh này sẽ tạo một nhánh mới có cùng tên.

Chỉ cần quên rằng nó đã đóng cửa. Chuyển sang chi nhánh, thực hiện các thay đổi và cam kết. Nó sẽ được tự động mở lại. Khi bạn hoàn thành, bạn có thể đóng lại.


Tôi nghĩ rằng, không giống như Git, các nhánh có tên Mercurial là vĩnh viễn và do đó, các tên nhánh không thể được sử dụng lại. Tôi đang bối rối điều gì? Có phải nhiều đầu cho cùng một chi nhánh mà chúng ta đang nói đến?
Nate Cook

2

thử làm theo:

hg pull && hg update branch_name

Bây giờ thực hiện một thay đổi nhỏ cho một trong các tệp và sau đó cam kết nó

 hg commit -m "minor change"

sau đó đẩy nó

hg push -b . 

Bây giờ bạn sẽ có thể làm việc bình thường.


-3

Thử cái này.

Chuyển sang nhánh đóng trước khi thực hiện. (hg lên kín_branch)

hg st

chạm vào một

thêm một

hg cam kết -m 'mở lại chi nhánh đã đóng'

Điều này sẽ mở lại các chi nhánh đóng cửa.


12
Đây là thêm một tập tin trống vô dụng vào kho lưu trữ, nó sai.
Rafael Piccolo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.