2015-06-03 16 views
23

Tôi sử dụng git làm hệ thống kiểm soát nguồn cục bộ chủ yếu cho lịch sử và theo dõi khác biệt. Tôi vẫn muốn sử dụng rebase để sửa lỗi/squash trên các cam kết WIP mà tôi sẽ thực hiện định kỳ. Khi tôi cố gắng làm git rebase -i mặc dù, tôi nhận được như sau:Làm cách nào để sử dụng tính năng rebase tương tác của Git với một kho lưu trữ cục bộ (không có từ xa/nguồn gốc)?

There is no tracking information for the current branch. 
Please specify which branch you want to rebase against. 
See git-rebase(1) for details 

    git rebase <branch> 

If you wish to set tracking information for this branch you can do so with: 

    git branch --set-upstream-to=<remote>/<branch> MyBranch 

Nó có vẻ như git không mong đợi bạn sử dụng rebase tương tác mà không có một từ xa thượng nguồn? Làm thế nào để làm điều đó?

Trả lời

19

git rebase -i viết tắt, mà không chỉ định chi nhánh đích, sẽ làm cho git giả định rằng bạn đang cố gắng rebase đối với một chi nhánh từ xa được theo dõi bởi chi nhánh của bạn. Đó là lý do tại sao thông báo lỗi đề cập đến nội dung về điều khiển từ xa.

Khi bạn chỉ định một mục tiêu, git sẽ rebase so với ish cam-:

git rebase -i <commit-ish> 
+1

Bạn có thể theo dõi bất kỳ chi nhánh, địa phương hoặc từ xa. – jthill

+0

Vâng - cố gắng chỉnh sửa câu trả lời để chỉ ra rằng, bởi vì về cơ bản tôi đã chỉnh sửa lại câu trả lời tự ban đầu của mình là giống nhau. 'HEAD ~ 3' ở đây không phải là một phần quan trọng của cú pháp, nó chỉ là một (bất kỳ)' ref' có thể có. – mcw0933

+1

'HEAD ~ 3' chỉ có ở đó bởi vì câu trả lời ban đầu của bạn được thiết kế để khởi động lại trên' HEAD ~ 3' và thực hiện các bước không cần thiết để đạt được nó. Tôi có thể đặt commit-ish nếu bạn thích ... –

7

Vì vậy, trong ngắn hạn - nếu bạn có 3 địa phương cam kết và bây giờ bạn muốn tương tác rebase/bóng squash/etc họ:

git rebase -i HEAD~3 

(Xem giải thích Sébastien của!)

+0

Yup - cảm ơn @MikeW. Đó là một ví dụ cụ thể về những gì bạn có thể sử dụng cho tham số "commit-ish" để git. Đối với bất kỳ ai không quen thuộc với "cam kết" là ... hãy xem câu trả lời SO khác: http://stackoverflow.com/questions/23303549/what-are-commit-ish-and-tree-ish- in-git – mcw0933

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