Lệnh git branch -a
hiển thị các nhánh từ xa tồn tại trong kho lưu trữ cục bộ của bạn . Điều này nghe có vẻ hơi khó hiểu nhưng để hiểu nó, bạn phải hiểu rằng có một sự khác biệt giữa một nhánh từ xa và một nhánh tồn tại trong một kho lưu trữ từ xa. Các nhánh từ xa là các nhánh cục bộ ánh xạ tới các nhánh của kho lưu trữ từ xa. Vì vậy, tập hợp các nhánh từ xa đại diện cho trạng thái của kho lưu trữ từ xa.
Cách thông thường để cập nhật danh sách các chi nhánh từ xa là sử dụng git fetch
. Điều này tự động nhận được một danh sách các nhánh được cập nhật từ xa và thiết lập các nhánh từ xa trong kho lưu trữ cục bộ, cũng tìm nạp bất kỳ đối tượng cam kết nào bạn có thể thiếu.
Tuy nhiên, theo mặc định, git fetch
không loại bỏ các nhánh từ xa không còn có nhánh đối tác trên điều khiển từ xa. Để làm điều đó, bạn cần phải cắt tỉa danh sách các nhánh từ xa:
git fetch --prune
Điều này sẽ tự động thoát khỏi các nhánh từ xa không còn tồn tại trên điều khiển từ xa. Sau đó, git branch -r
sẽ hiển thị cho bạn một danh sách cập nhật các nhánh thực sự tồn tại trên điều khiển từ xa: Và những nhánh bạn có thể xóa bằng cách sử dụng git push
.
Điều đó đang được nói, để sử dụng git push --delete
, bạn cần chỉ định tên của chi nhánh trên kho lưu trữ từ xa; không phải tên của chi nhánh từ xa của bạn. Vì vậy, để xóa chi nhánh test
(được đại diện bởi chi nhánh từ xa của bạn origin/test
), bạn sẽ sử dụng git push origin --delete test
.
git branch -a
sẽ liệt kê các chi nhánh tại địa phương của bạn chứ không phải từ xa của bạn. Đúng?