2016-03-18 13 views
32

Tôi vô tình cắt tỉa một số nhánh từ xa và tôi không thực sự biết hậu quả của việc này là gì (tôi nhấp vào nút "Prune remote branches" trong Git Extensions, nghĩ rằng nó sẽ xóa một nhánh xa).Git là gì?

Tài liệu chính thức cho biết "git-prune - Prune tất cả các đối tượng không thể truy cập từ cơ sở dữ liệu đối tượng". Tôi thực sự không hiểu ý nghĩa của nó. Tôi đoán điều này có thể đã xóa các nhánh đã hợp nhất nhưng tôi không thực sự chắc chắn.

+0

Bản sao có thể có của http://stackoverflow.com/questions/4040717/git-remote-prune-didnt-show-as-many-pruned-branches-as-i-expected – Raghavan

+0

Có thể đáng xem xét 'git gc ': https://git-scm.com/docs/git-prune. – swdon

Trả lời

33

"Prune remote branch" trong Git Extensions thực hiện lệnh git remote prune, loại bỏ các nhánh theo dõi từ xa tại địa phương nơi nhánh không còn tồn tại trên điều khiển từ xa nữa.

Xem ở đây: https://git-scm.com/docs/git-remote#git-remote-empruneem

+0

vì vậy về cơ bản ưu tiên cho điều khiển từ xa của bạn và điều chỉnh địa phương của bạn để phù hợp với các nhánh từ xa của bạn? – Honey

+0

@ Không, nó chỉ loại bỏ ** các chi nhánh theo dõi từ xa ** cục bộ, các nhánh bình thường không được chạm vào. – 1615903

14

Rác này chỉ thu thập các nhánh của bạn.

Có nghĩa là, nếu không thể truy cập được đối tượng (một cam kết) trong tổ tiên của chi nhánh của bạn, nó sẽ bị xóa cho cơ sở dữ liệu git, và vì vậy không thể tiếp cận được nữa.

Điều này chỉ làm sạch một chút kho git và làm cho nó nhẹ hơn.

+0

Theo tài liệu hướng dẫn, đối với các nhiệm vụ giữ nhà như thế này, tốt hơn nên thực hiện 'git gc' chứ không phải là' git prune' mà về cơ bản sẽ làm một gune prune. – swdon

0

Có thể có các ngành chức năng điều khiển từ xa được gỡ bỏ sau khi chúng tôi ghép lại thành bậc thầy. Chúng tôi có thể đã xóa các chi nhánh tính năng như một cách dọn dẹp. Nhưng nếu bạn đã kiểm tra chi nhánh đã xóa cho hệ thống cục bộ và đặt thành trạng thái là theo dõi, git pull sẽ không xóa các nhánh cục bộ đó (vì các nhánh đó đã bị ngắt kết nối khỏi máy chủ). Để dọn dẹp loại chi nhánh trẻ mồ côi địa phương đó, lệnh git prune sẽ hữu ích để trợ giúp.