Làm thế nào để hoàn nguyên nhánh Master ngược dòng


145

Tôi đã rẽ nhánh một 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à được đẩy lên github.

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

Câu trả lời:


277

(Tôi giả sử rằng những thay đổi mà bạn muốn bỏ qua bây giờ nằm ​​ở originđiều khiển từ xa, bạn đang ở masterchi nhánh của mình và bạn muốn trở lại nội dung củaupstream điều khiển từ xa)

Đầu tiên, đặt lại bản sao làm việc của bạn thành chủ ngược dòng:

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 đầu chi nhánh mới này vào kho lưu trữ gốc của bạn, bỏ qua thực tế rằng nó sẽ không phải là một chuyển tiếp nhanh:

git push origin +master

14
Cũng có thể cần phải chạy git remote add upstream <upstream_repo_url>nếu bạn rẽ nhánh bằng GitHub.
Kato

3
Ý nghĩa của +trong là git push origin +mastergì? Có giống như chỉ git push origin master?
bluenote10

4
@ bluenote10 Chúng không giống nhau. Các +là những gì nói với git để "[bỏ qua] thực tế là nó sẽ không phải là nhanh về phía trước". Nó hơi giống như làm một git push --force, nhưng nó chỉ áp dụng cho ref cụ thể đó.
nickgrim

1
Không làm việc cho tôi. Tôi đã làm một trạng thái git sau khi nó có các mục đã được sửa đổi. Tôi sẽ phải lau và bắt đầu lại. Git là vô cùng khó hiểu.
Mitch

1
@mehmet Không, nó chỉ thay đổi chi nhánh bạn đang ở.
Giăng
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.