Bạn cần hiểu rằng kho lưu trữ Git không chỉ là một cây thư mục và tệp, mà còn lưu trữ lịch sử của những cây đó - có thể chứa các nhánh và hợp nhất.
Khi tìm nạp từ kho lưu trữ, bạn sẽ sao chép tất cả hoặc một số nhánh ở đó vào kho lưu trữ của bạn. Chúng nằm trong kho lưu trữ của bạn dưới dạng "các nhánh theo dõi từ xa", ví dụ như các nhánh có tên như remotes/origin/master
thế.
Tìm nạp các xác nhận mới từ kho lưu trữ từ xa sẽ không thay đổi bất cứ điều gì về bản sao làm việc tại địa phương của bạn.
Bản sao làm việc của bạn thường có một cam kết kiểm tra, được gọi HEAD
. Cam kết này thường là tiền boa của một trong những chi nhánh địa phương của bạn.
Tôi nghĩ rằng bạn muốn cập nhật chi nhánh địa phương của bạn (hoặc có thể tất cả các chi nhánh địa phương?) Thành chi nhánh từ xa tương ứng, và sau đó kiểm tra chi nhánh mới nhất.
Để tránh mọi xung đột với bản sao làm việc của bạn (có thể có thay đổi cục bộ), trước tiên bạn hãy xóa mọi thứ không được phiên bản (sử dụng git clean
). Sau đó, bạn kiểm tra nhánh cục bộ tương ứng với nhánh từ xa mà bạn muốn cập nhật và sử dụng git reset
để chuyển nó sang nhánh từ xa được tìm nạp. ( git pull
sẽ kết hợp tất cả các bản cập nhật của chi nhánh từ xa trong địa phương của bạn, có thể làm tương tự hoặc tạo một cam kết hợp nhất nếu bạn có các cam kết cục bộ.)
(Nhưng sau đó bạn sẽ thực sự mất bất kỳ thay đổi cục bộ nào - cả trong bản sao hoạt động và cam kết cục bộ. Hãy chắc chắn rằng bạn thực sự muốn điều này - nếu không thì sử dụng một chi nhánh mới, điều này sẽ tiết kiệm các cam kết cục bộ của bạn. Và sử dụng git stash
để lưu các thay đổi chưa được cam kết .)
Chỉnh sửa:
Nếu bạn chỉ có một chi nhánh địa phương và đang theo dõi một chi nhánh từ xa, tất cả những gì bạn cần làm là
git pull
từ bên trong thư mục làm việc.
Điều này sẽ tìm nạp phiên bản hiện tại của tất cả các nhánh từ xa được theo dõi và cập nhật nhánh hiện tại (và thư mục làm việc) lên phiên bản hiện tại của nhánh từ xa mà nó đang theo dõi.