Ý nghĩa của git reset - nguồn gốc / chủ là gì?


224

Tôi đã làm một git pullvà có một lỗi:

Các tệp cây làm việc sau đây sẽ được ghi đè bằng cách hợp nhất ... Vui lòng di chuyển hoặc xóa chúng trước khi bạn có thể hợp nhất.

Để giải quyết điều này tôi đã làm như sau:

git fetch
git reset --hard origin/master

Bây giờ khi tôi làm git pull, nó nói mọi thứ cập nhật. Tôi muốn biết chính xác những gì xảy ra khi tôi chạy các lệnh này. Tôi biết git fetchlấy các thay đổi từ repo từ xa mà không hợp nhất chúng vào repo cục bộ của tôi.

Ý nghĩa của là git reset --hard origin/mastergì? Làm thế nào nó hoạt động?

Câu trả lời:


414
git reset --hard origin/master

nói: vứt bỏ tất cả những thay đổi được dàn dựng và không theo giai đoạn của tôi, quên mọi thứ trên chi nhánh địa phương hiện tại của tôi và làm cho nó giống hệt như origin/master.

Bạn có thể muốn hỏi điều này trước khi bạn chạy lệnh. Bản chất phá hoại được gợi ý bằng cách sử dụng các từ tương tự như trong "thiết lập lại cứng".


9
Bạn có thể hoàn tác di chuyển này bằng cách sử dụng git reset --hard HEAD@{1}. HEAD@{1}thay đổi tùy theo tình huống, vì vậy bạn nên tìm kiếm nó git reflog.
Nils Werner

2
Lưu ý rằng phương pháp @ NilsWerner để hoàn tác di chuyển không khôi phục các thay đổi theo giai đoạn và không theo giai đoạn. Những thứ đó đã biến mất.
Michael Anderson

3
Các tập tin theo giai đoạn vẫn có thể được tìm thấy git fsck --lost-found, nhưng chúng sẽ không được gắn vào đường dẫn tệp gốc của chúng và có thể khó sắp xếp.
CB Bailey

1
Việc đặt lại chi nhánh chính cục bộ của bạn thành nguồn gốc / chủ khi bạn (có lẽ vô tình) đã cam kết thay đổi đối với chủ địa phương thay vì chi nhánh địa phương. Chỉ cần tạo một nhánh cục bộ cho các cam kết mới nhất của bạn và sau đó đặt lại bản gốc cục bộ của bạn thành bản gốc / bản gốc. Sau đó, bạn có thể hợp nhất hoặc rebase chi nhánh của bạn từ chủ khi cần thiết.
Mike Hopper

2
lol "bóng gió" là một cách tuyệt vời để mô tả điều này, vì nó không ở đâu gần như rõ ràng hoặc rõ ràng
Ben Sandeen
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.