2011-09-05 23 views
5

Tôi muốn kéo chi nhánh (nhánh chính) vào kho lưu trữ hiện tại và thay thế tệp hiện có, không chỉ hợp nhất tệp, lệnh git pull không phù hợp với nhu cầu của tôi, cách Để làm việc đó?kéo và thay thế tệp hiện có

Trả lời

6

Tại sao bạn cho rằng nó không phù hợp?

git pull sẽ cập nhật chi nhánh của bạn ở trạng thái tương tự của kho lưu trữ từ xa, vì vậy nếu tệp bạn có ở phiên bản mới hơn trên điều khiển từ xa, tệp sẽ được thay thế.

EDIT

Nếu sau khi kéo, hòa trộn được thực hiện với những thay đổi địa phương, bạn có thể thiết lập lại để tình trạng kho từ xa như sau:

git reset origin/head -- <file-path> 
+1

Như bạn đã nói, nhưng tôi thấy tệp cục bộ của mình được hợp nhất với tệp mới từ kho lưu trữ từ xa, không bị thay thế. – coolesting

+0

@coolesting: I'v đã cập nhật câu trả lời của tôi. – CharlesB

0

Vì vậy, bạn đã thực hiện một địa phương cam kết ảnh hưởng đến tệp này và muốn loại bỏ cam kết của bạn và chỉ cần lấy trạng thái từ xa mà không cần hợp nhất, đúng không?

Giả sử không ai khác đã nhìn thấy cam kết địa phương của bạn (nghĩa là bạn không push và không ai pull sửa đổi từ repo của mình), bạn có thể quay HEAD địa phương của bạn về trước cam kết và sau đó thực hiện thao tác kéo.

NB. nếu bạn không chắc chắn, hãy chạy trước tiên git fetch và sau đó git status sẽ cho bạn biết liệu thao tác kéo sẽ là một thao tác tiến nhanh hay hợp nhất. Tua đi nhanh có nghĩa là thay đổi cục bộ của bạn không nằm trong ảnh.

+0

Không, tôi chỉ muốn tệp cục bộ của tôi giống với tệp từ xa ở trạng thái đang phát triển. Cập nhật tệp cục bộ với kho lưu trữ từ xa, nhưng đôi khi, các tệp của chúng tôi là sự khác biệt giữa địa phương và từ xa, nói chung, chúng tôi sẽ hợp nhất hai tệp này, nhưng bây giờ tôi muốn thay thế hoàn toàn tệp cục bộ bằng từ xa, không hợp nhất. – coolesting

+0

Nếu có sự khác biệt giữa phiên bản địa phương và từ xa của tệp, chắc chắn đó là do bạn đã thay đổi nó? Có lẽ bạn có thể giải thích trạng thái của tệp, trong 'master' cục bộ của bạn, từ xa' origin/master' và tổ tiên chung của chúng, rõ ràng hơn một chút trong câu hỏi của bạn. – Useless

5

Nếu bạn muốn thay thế một tệp, bạn có thể sử dụng tệp này.

git checkout -- filename 

Click here để biết thêm chi tiết

-1

Nó rất có thể đúng là câu hỏi-hỏi thực sự biết chính xác những gì anh ấy nói về và chỉ cần cơ khí như thế nào-tos trả lời, không phải là một cuộc thảo luận triết học.

git checkout - (gạch ngang đôi) sau đó tên tập tin, khoảng cách giữa các dấu gạch ngang đôi và filename

git checkout - [tên tập tin trong repo bao gồm path]

dụ: git checkout - lượt xem/userEditor.pug

Ít triết lý, hỗ trợ thực tế hơn. Sheesh.

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