2014-11-04 19 views
7

Trong git, tôi có một chi nhánh A. Tôi tạo một chi nhánh khác B nơi tôi tạo một vài cam kết. Sau đó, tôi muốn chuyển nhanh chi nhánh A đến chi nhánh B.Có thể nhanh chóng chuyển tiếp một chi nhánh khác mà không kiểm tra chi nhánh không?

Tôi biết rằng tôi có thể thanh toán A và chuyển nhanh đến cam kết mới nhất của B. Thao tác này yêu cầu hai sửa đổi bản sao làm việc: bản đầu tiên quay trở lại A và sau đó hoàn nguyên bản sao làm việc thành B. Nếu các cam kết mới trên B có nhiều thay đổi, hoạt động có thể khá chậm.

Có thể thực hiện chuyển tiếp nhanh nhánh khác mà không thay đổi bản sao làm việc không? (Nói cách khác, để di chuyển chỉ là con trỏ của A)

+1

'git update-ref'. Sử dụng cẩn thận. –

+0

@AndrewC thêm nó làm câu trả lời. –

Trả lời

3

Git cung cấp lệnh update-ref cho mục đích này

git update-ref A B 

Lưu ý: Lệnh này là một trong những lệnh Git cấp dưới và không cung cấp bất kỳ các biện pháp bảo vệ để bạn không bị vướng víu. Nếu B không tiến nhanh về A, nó sẽ vẫn cập nhật A, có khả năng làm cho các cam kết không thể truy cập được và tùy thuộc vào việc thu gom rác thải.

+0

@Zeeker nói rằng nó không còn mất các cam kết: http://stackoverflow.com/questions/26752567/is-it-better-to-use-git-branch-f-or-git-update-ref-to-fast -forware-existing-bra # comment42096589_26752567 –

+2

Sẽ không biến mất một cách kỳ diệu vào thời điểm bạn thực hiện 'update-ref' hoặc bất kỳ thứ gì như thế. Nhưng chúng có thể trở nên không thể truy cập được, và một khi điều đó xảy ra là tùy thuộc vào các chính sách thu gom rác thông thường. –

+0

Hmm .. Tôi muốn làm điều này, nhưng không đủ để sử dụng cập nhật thường xuyên-ref. :-( – Thilo

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