Tôi đã thực hiện một loạt các bước câm với bản sao cục bộ của tôi của kho lưu trữ được chia sẻ của chúng tôi và tôi đang tìm cách để sửa chữa nó. Các bước thực hiện:Làm thế nào để đẩy, mà không cần tạo đầu mới, sau khi tạo chi nhánh nhiều nhánh, rebase và nhiều lần hợp nhất
tôi đã sử dụng bookmark để có nhiều người đứng đầu của một chi nhánh phát triển, mà những người khác sử dụng:
-o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
Tôi tạo ra một chi nhánh mới, vẫn còn địa phương, một thời gian sau
/---------------x <- new branch -o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
cho một đầu, chỉ chứa mã của tôi, tôi đã thực hiện rebase trên một chi nhánh khác
/-1'--1'-- <- rebase /---------------x <- new branch -o---o---o-----o--- <- dev branch \----1----1------ <- another head of the dev branch, where I committed stuff
sau đó, tôi sáp nhập rebase, và sau đó, một vài cam kết sau, tôi sáp nhập mặc định
----------d-\ <-default \ /-1'--1'\ \ /---------------x--------x--x-x-x-- <- new branch -o---o---o-----o--- \----1----1------
Bây giờ, tôi muốn đẩy chi nhánh mới của tôi đến máy chủ (hg push --new-branch -b newBranch
) , nhưng tôi nhận được abort: push creates new remote head
, vì cam kết 1'
thuộc về chi nhánh dev.
Điều phải làm là gì? Tôi muốn tránh tạo đầu bổ sung này.
Cập nhật:
Theo yêu cầu, đây là sản phẩm của hg heads
:
changeset: 839:f2033d695fcd <- want to push this
branch: newBranch
tag: tip
user: me
date: Wed Oct 31 13:05:51 2012 +0100
changeset: 826:7fde19d7f467
branch: devBranch
user: my-collegue
date: Tue Oct 23 14:59:42 2012 +0200
changeset: 820:23853bbf68df <- the part after rebase that got merged
branch: devBranch
user: me
date: Mon Oct 22 15:36:26 2012 +0200
changeset: 807:899344cfb145 <- obsolete (branch with 1's)
branch: devBranch
parent: 711:454f29c03fb1
user: me
date: Mon Oct 22 15:36:26 2012 +0200
changeset: 712:d5e8a62a7f5f <- default, needs to stay
parent: 648:2bbcc01aa191
user: me
date: Wed Aug 22 16:21:09 2012 +0200
Không sử dụng "bản vẽ" miễn phí - bạn có các lệnh điều khiển và khả năng dán kết quả đầu ra theo câu hỏi ** được định dạng ** ('hg log' hoặc' hg glog' cho cây tại đây và tại http: // stackoverflow.com/questions/11982648/reassigning-local-commits-to-a-different-branch-in-mercurial, ví dụ). Bây giờ, xin vui lòng, thêm đầu ra của 'hg heads' với chú thích - đầu nào đã lỗi thời và không tồn tại (hoàn toàn hoặc chỉ trong push-target). Cũng đọc về tùy chọn -r trong lệnh push –
Xin chào @LazyBadger, tôi không thể cung cấp cho bạn đầu ra của 'log' vì có nhiều cam kết hơn tôi đã mô tả và tôi cũng quên các lệnh chính xác mà tôi đã thực hiện để truy cập trạng thái này ... Câu hỏi được cập nhật để chứa đầu ra của đầu. Tôi không hiểu tham chiếu của bạn về tùy chọn '-r', làm thế nào/tại sao nó lại hữu ích? –
lệnh chính xác không cần thiết trong trường hợp này - ** bạn ** (không phải tôi) phải xem cây của devBranch (từ cha mẹ chung của 807 và 820 đến 826), xác định * khả năng * (và * necessity *) của hợp nhất đầu của devBranch. Hoặc chỉ 'push -r f2033d695fcd' sẽ đủ –