2011-01-15 19 views
14

Chúng tôi nhận được một nhánh 'dev' hoạt động như một bậc thầy thực tế trong một thời gian dài.Git tạo điểm tổng thể từ xa đến một nhánh khác

Có cách nào để làm cho remote/master của tôi chỉ trỏ đến cùng một vị trí như remote/dev không? (không hợp nhất/rebasing/thêm công việc).

(Xem thêm hoặc ít hơn một đổi tên của dev để làm chủ)

Cảm ơn trước

Trả lời

19

Thanh toán tổng chi nhánh, thiết lập lại nó để dev, push. Điều này sẽ ảnh hưởng đến người dùng ở hạ lưu có thể có các nhánh từ xa/chủ của bạn.

git checkout master 

git reset --hard remote/dev 

git push -f 

Điều này sẽ khiến bạn mất bất kỳ cam kết nào bạn đã thực hiện do điều khiển từ xa và lệch hướng, nhưng bạn sẽ kết thúc với trạng thái giống như remote/dev.

+0

Chỉ cần để xác minh - Tôi sẽ mất tất cả cam kết để làm chủ nhưng giữ tất cả lịch sử của nhánh dev? – Boris

+0

Có, tôi chắc chắn. – RJFalconer

+0

Điều này làm việc cho tôi, và sau đó tôi đã sử dụng cách của @ Roman để xóa nhánh cũ với 'git push origin: refs/head/dev' – knocte

6

Giả sử từ xa của bạn được đặt tên origin,

git push origin +origin/dev:refs/heads/master 

Sau đó, nếu bạn muốn cũng xóa dev:

git push origin :refs/heads/dev 
+1

Có lẽ bạn cũng sẽ muốn di chuyển thạc sĩ địa phương, có thể với một thiết lập lại cứng. (Tại thời điểm đó bạn cũng có thể đã thực hiện những gì RJFalconer đề xuất.) – Cascabel

+1

@Jefromi: nó tạo ra nhiều giả định hơn về cấu trúc của kho lưu trữ cục bộ. Ví dụ, không khó tưởng tượng rằng nhánh 'master' cục bộ đơn giản không tồn tại, nếu không có hoạt động nào trong' master' của thượng lưu. Nói chung, việc ánh xạ giữa các nhánh địa phương và từ xa là tùy ý, mặc dù hầu hết mọi người thực sự có xu hướng giữ nó đơn giản. –

+0

Điểm hợp lệ. Tôi đã giả định rằng anh ta có một "bậc thầy" để phù hợp với "người chủ/từ xa" của mình. Không phải là một giả định lớn, nhưng một giả định tuy nhiên. – RJFalconer

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