2011-11-15 33 views
133

Tôi đã chia đôi kho lưu trữ git và thiết lập ngược dòng. Tôi đã thực hiện một số thay đổi trong nhánh Master và cam kết và đẩy đến github.Cách hoàn nguyên chi nhánh chính về phía thượng nguồn

Bây giờ tôi nên làm gì để từ bỏ tất cả các thay đổi trong nhánh chính và làm cho nó giống hệt với nhánh chính của thượng nguồn?

Trả lời

255

(Tôi giả định rằng những thay đổi mà bây giờ bạn muốn bỏ qua là tại origin từ xa của bạn, bạn đang ở trên nhánh master của bạn, và bạn muốn trở lại các nội dung của upstream từ xa)

Thứ nhất , thiết lập lại bản sao làm việc của bạn để làm chủ thượng nguồn:

git remote update 
# the double hyphen ensures that upstream/master is 
# considered as a revision and not confused as a path 
git reset --hard upstream/master -- 

Sau đó đẩy mới chi nhánh đầu này đến kho lưu trữ nguồn gốc của mình, bỏ qua thực tế là nó sẽ không được một nhanh về phía trước:

git push origin +master 
+13

Cũng có thể cần chạy 'git remote add upstream ' nếu bạn chia nhánh bằng GitHub. – Kato

+3

Ý nghĩa của '+' trong 'git push origin + master' là gì? Nó có giống như 'git push origin master' không? – bluenote10

+3

@ bluenote10 Chúng không giống nhau. '+' Là điều cho git biết "[bỏ qua] thực tế là nó sẽ không chuyển tiếp nhanh". Đó là một chút giống như làm một 'git push - force', nhưng nó chỉ áp dụng cho ref cụ thể đó. – nickgrim

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