Câu trả lời:
Để cập nhật danh sách địa phương của các chi nhánh từ xa:
git remote update origin --prune
Để hiển thị tất cả các chi nhánh địa phương và từ xa mà (địa phương) Git biết về
git branch -a
git remote update origin --prune
là những gì tôi đang tìm kiếm
git remote update
và câu trả lời được chấp nhận, sử dụng git fetch
, xem tại đây
git fetch
đã không loại bỏ bộ nhớ cache cục bộ của tôi của các chi nhánh từ xa. Chỉ --prune
có thể làm sạch tất cả.
git config remote.origin.prune true
git remote prune origin
có tác dụng tương tự và bạn gõ ít hơn.
Tôi tin rằng nếu bạn chạy git branch --all
từ Bash rằng danh sách các nhánh từ xa và cục bộ mà bạn nhìn thấy sẽ phản ánh những gì Git địa phương của bạn "biết" về thời điểm bạn chạy lệnh. Vì Git của bạn luôn cập nhật liên quan đến các chi nhánh địa phương trong hệ thống của bạn, nên danh sách các chi nhánh địa phương sẽ luôn chính xác.
Tuy nhiên, đối với các chi nhánh từ xa thì điều này không cần phải như vậy. Git cục bộ của bạn chỉ biết về các nhánh từ xa mà nó đã thấy trong lần tìm nạp cuối cùng (hoặc kéo). Vì vậy, có thể bạn có thể chạy git branch --all
và không thấy một nhánh từ xa mới xuất hiện sau lần cuối bạn tải hoặc kéo.
Để đảm bảo rằng danh sách chi nhánh địa phương và từ xa của bạn được cập nhật, bạn có thể thực hiện git fetch
trước khi chạy git branch --all
.
Để biết thêm thông tin, các nhánh "từ xa" xuất hiện khi bạn chạy hoàn toàn git branch --all
không phải là điều khiển từ xa; họ thực sự là người địa phương. Ví dụ: giả sử có một nhánh trên điều khiển từ xa feature
mà bạn đã kéo ít nhất một lần vào Git cục bộ của mình. Bạn sẽ thấy origin/feature
được liệt kê như một chi nhánh khi bạn chạy git branch --all
. Nhưng chi nhánh này thực sự là một chi nhánh Git địa phương . Khi bạn làm như vậy git fetch origin
, nhánh theo dõi này sẽ được cập nhật với bất kỳ thay đổi mới nào từ xa. Đây là lý do tại sao trạng thái địa phương của bạn có thể bị cũ, bởi vì có thể có các nhánh từ xa mới hoặc các nhánh theo dõi của bạn có thể trở nên cũ.
git fetch
đã làm nó.
git fetch
không làm việc cho tôi, cần thêm --prune
. Btw, tôi không downvoter;)
git fetch
không xóa các chi nhánh từ xa bị xóa. Đó có lẽ là lý do tại sao một số người bị hạ thấp
OP không yêu cầu dọn dẹp cho tất cả các điều khiển từ xa, thay vào đó là tất cả các nhánh của điều khiển từ xa mặc định.
Vì thế git fetch --prune
những gì nên được sử dụng.
Thiết lập git config remote.origin.prune true
làm --prune
tự động. Trong trường hợp git fetch
đó, cũng sẽ cắt tỉa các nhánh từ xa từ bản sao cục bộ. Xem thêm Tự động cắt tỉa với Git lấy hoặc kéo .
Lưu ý rằng điều này không làm sạch các nhánh cục bộ không còn theo dõi một nhánh từ xa. Xem Cách cắt tỉa các nhánh theo dõi cục bộ không còn tồn tại trên remote nữa .
git fetch -p
Sử dụng git fetch
để lấy tất cả các nhánh được tạo mới nhất.
git fetch
không thay đổi bất cứ điều gì với tôi với git 2.17.1. Phiên bản và tùy chọn nào bạn đang sử dụng?
--prune
hoặc git config remote.NAME.prune true
để giải quyết câu hỏi OP
Nếu bạn đang sử dụng Eclipse và muốn xem các nhánh mới từ thượng nguồn;
Trong phối cảnh Git, nhấp chuột phải vào kho Git và sau đó chọn "Tìm nạp từ thượng nguồn". Điều này lấy các chi nhánh từ xa mới.
Nếu bạn đang sử dụng Eclipse,
Tất cả họ nên ở trong đó. Nhấp chuột phải và "thanh toán."
git ls-remote
có thể thú vị ở đây.