2013-01-10 32 views
30

Tôi đang làm việc trên kho git bởi chính mình (vì vậy có, tôi biết ý nghĩa và cảnh báo thực hiện việc này) và bằng cách nào đó nó không nên có.Giải quyết xung đột hợp nhất: Bắt buộc ghi đè tất cả các tệp

Bây giờ tôi đang cố gắng rút lại và nó phàn nàn về hàng trăm xung đột hợp nhất.

Có cách nào để yêu cầu git gửi mạnh mẽ ghi đè bất kỳ và tất cả các tệp cục bộ đến từ máy chủ từ xa không? Có cách nào nhanh hơn làm git reset --hard HEAD~1 và sau đó thực hiện thao tác kéo không?

Cùng một lưu ý đó, có cách nào để thực hiện tương tự với việc kết hợp đơn giản không? Tất cả mọi thứ tôi đã thấy đề nghị để kiểm tra mỗi và mọi tập tin trong giai đoạn giải quyết xung đột hợp nhất, nhưng với hàng trăm tập tin nó chỉ là không thể làm như vậy bằng tay.

+1

tại sao bạn không chỉ thổi bay hộp cát của bạn và git sao chép nó một lần nữa? – gview

+0

Tôi đã hy vọng điều gì đó không mất nhiều thời gian. Dự án lớn và sẽ mất nhiều thời gian để sao chép. – Qix

Trả lời

53

Có ba giải pháp đơn giản để sao chép các phiên bản trước đó là ở bạn từ xa kho, vứt bỏ tất cả những thay đổi mà bạn đã thực hiện tại địa phương:

  1. Bỏ kho của bạn và sao chép lại. Đây là giải pháp đơn giản nhất, nhưng nếu kho của bạn là lớn, nó có thể mất một thời gian dài, và có thể yêu cầu thêm nỗ lực như tái configure ing vv

  2. Huỷ những thay đổi cục bộ với git reset --hard <hash> và sau đó làm một git pull. Vấn đề là trước tiên bạn cần tìm một cam kết trước bất kỳ lịch sử thay đổi nào mà bạn đang cố gắng tránh. Sau khi đặt lại thành băm cam kết đó, hãy thực hiện git pull.

  3. Thực hiện git fetch để cập nhật tham chiếu cục bộ của bạn về nhánh từ xa (thường là nguồn gốc/chính) và sau đó thực hiện git reset --hard chuyển tham chiếu này, tức là git reset --hard origin/master.

+4

# 3 khá thông minh. Câu trả lời tốt. Chào mừng bạn đến với StackOverflow, nhân tiện. Chỉ cần lưu ý: sử dụng dấu ngoặc kép (') để biểu thị mã hoặc công cụ dòng lệnh. – Qix

+3

'git checkout --theirs .' dường như hoạt động nếu hợp nhất không bao gồm bất kỳ xóa nào –

0
git reset --hard {remote_repository_name}/{branch_name} 

Ví dụ:

git reset --hard upstream/branch1 

Nếu bạn đang làm việc với một chi nhánh bạn có thể sử dụng trên code.But trước đó, bạn phải thiết lập (thượng nguồn hay nguồn gốc) để kho địa phương của bạn ,

git remote add upstream https://github.com/lakini/example.git 

tại đây, https://github.com/lakini/example.git là kho lưu trữ ngược dòng từ xa.

Tương tự như vậy, chúng tôi cũng có thể làm việc trong kho lưu trữ từ xa (nguồn gốc).

git reset --hard origin/branch1 
+0

Đây chính xác là câu trả lời khác cho biết ... – Qix

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