Tại nơi làm việc, chúng tôi đang sử dụng các nhánh chủ đề được tích hợp vào một vài (3) nhánh chính tại một số điểm. Bây giờ tôi muốn xóa tất cả các nhánh chủ đề khỏi kho từ xa của chúng tôi đã được tích hợp hoàn toàn vào một nhánh chính. Nếu điều đó là không thể, việc lấy danh sách các nhánh địa phương đã được tích hợp cũng sẽ ổn.Làm thế nào để xóa tất cả các nhánh git từ xa đã được tích hợp?
Trả lời
Edit:
câu trả lời tốt nhất từ bình luận skalee của:
git branch -a --merged remotes/origin/master | grep -v master | grep "remotes/origin/" | cut -d "/" -f 3- | xargs -n 1 git push --delete origin
Cũ câu trả lời:
git push --delete remote topicbranch
hoặc
git push remote :topicbranch
Đưa ra một danh sách các chi nhánh, sẽ là một cái gì đó với git branch --merged master
Bạn có thể làm điều này trong một đi với
git branch --merged master | grep -v master | xargs -n 1 git push --delete origin
Dump rằng trong một kịch bản gọi là 'sạch' nếu bạn tìm thấy bạn đang làm điều này thường xuyên.
Nếu bạn muốn xóa tất cả các nhánh từ xa, không chỉ những nhánh có đối tác địa phương của chúng: 'git branch -a --merged remotes/origin/master | grep -v master | grep "điều khiển từ xa/nguồn gốc /" | cắt -d "/" -f 3 | xargs -n 1 git push --xóa gốc'. Ngoài ra, tôi khuyên bạn nên sử dụng 'remote/origin/master' thay cho' master' đơn giản để loại trừ thứ bạn đã hợp nhất cục bộ nhưng chưa được đẩy, trong trường hợp nếu cuối cùng bạn quên hoặc quyết định không push. – skalee
@skalee cảm ơn! điều này làm việc cho tôi ngoại trừ khi các nhánh nằm trong các thư mục - sử dụng 'cut -d"/"-f 3-' để thay thế. Tôi cũng phải thêm 'grep -v develop' để dừng nó cố gắng loại bỏ nhánh dev của tôi. – antonyh
'xargs -n 1' quá chậm, nếu bạn có nhiều nhánh sử dụng' xargs -n 20' để thay thế. – mozillazg
Nếu bạn muốn xóa các chi nhánh từ xa từ kho lưu trữ nguồn gốc:
git branch -r --merged develop | egrep -iv '(master|develop)' | sed 's/origin\///g' | xargs -n 1 git push --delete origin
Điều này cũng hữu ích khi xóa tất cả các nhánh ngược dòng sau một ngã rẽ – ianstarz
đây là câu trả lời đúng thực :), vì những người khác dường như không thể xóa các nhánh bao gồm dấu gạch chéo, mà chúng tôi sử dụng (mặc dù) tính năng/tính năng của tôi, bugfix/my-feature –
Điều này có vẻ khá tốt, ngoại trừ việc sử dụng nguồn gốc/chủ hoặc nguồn gốc/phát triển là một tiêu chuẩn khá quan trọng để có thể loại bỏ nội dung nào đó. Bạn không thể xóa nội dung nào đó từ xa chỉ vì bạn đã hợp nhất nó vào phiên bản địa phương của nhánh chính, có khả năng bạn quên đẩy nhánh đó vào điều khiển từ xa, điều này có nghĩa là xóa các nhánh chưa được tạo ra. –
Đây là những lệnh Tôi đang sử dụng để loại bỏ tất cả mọi thứ trộn vào origin/master
. Về cơ bản, tôi loại bỏ tất cả các chi nhánh sáp nhập vào master
từ GitHub.
git remote update -p &&
git branch -r --merged origin/master |
grep origin |
grep -v master |
cut -d"/" -f2- |
xargs git push origin --delete
Chỉ dành cho người dùng Powershell và cửa sổ.
git branch -r --merged | findstr /v "origin/master" | %{git push origin --delete $_.Trim().Substring(7)}
- 1. Hợp nhất các nhánh từ xa trong git
- 2. Thiết lập Git để lấy tất cả các chi nhánh từ xa
- 3. Làm thế nào để xóa một nhánh từ xa bằng Git?
- 4. Làm thế nào để xóa an toàn một nhánh git từ xa?
- 5. Trong git, làm cách nào để kiểm tra các nhánh từ xa của kho từ xa?
- 6. Jira và git: Làm thế nào để có được tất cả các chi nhánh phản ánh?
- 7. Bí danh Git để xóa chi nhánh từ xa
- 8. Làm cách nào để có được các nhánh git từ xa bằng Node.js?
- 9. Git: Làm thế nào để đẩy từ "không nhánh" đến nhánh mới từ xa?
- 10. Làm thế nào để Kaleidoscope tích hợp git của tôi hiển thị tất cả các tệp sắp được cam kết?
- 11. Tìm nạp tất cả các nhánh từ xa vào một kho Git trống
- 12. Tìm kiếm GIT từ xa tất cả các chi nhánh cho nội dung tập tin?
- 13. Xóa các chi nhánh ở xa trong Git
- 14. Cách đặt lại kho lưu trữ GIT từ xa để xóa tất cả các cam kết?
- 15. giải thích lệnh cho git xóa chi nhánh từ xa
- 16. Kết hợp các thay đổi từ chủ vào tất cả các nhánh bằng Git?
- 17. Git - Không thể xóa chi nhánh từ xa
- 18. Làm thế nào để hợp lại thành chi nhánh từ xa
- 19. Làm thế nào để sao chép một repo git với tất cả các chi nhánh và thẻ từ refs/điều khiển từ xa?
- 20. Làm thế nào để git push từ xa nếu từ xa không tồn tại ở tất cả
- 21. Git truy xuất danh sách tất cả các tệp đã được sửa đổi trong chi nhánh
- 22. Không thể xóa chi nhánh từ xa trong git
- 23. Git - Cách hợp nhất một nhánh từ xa vào tổng thể từ xa
- 24. Làm cách nào để hủy bỏ tất cả các tệp đã xóa trong Git
- 25. Git - theo dõi nhiều nhánh từ xa?
- 26. Làm thế nào để xóa một nhánh trong kho lưu trữ từ xa bằng EGIT?
- 27. Bắt chi nhánh git hiện để theo dõi các chi nhánh từ xa
- 28. Làm thế nào để có được một chi nhánh theo dõi từ xa để luôn được cập nhật với nguồn gốc từ xa trong một kho Git trống?
- 29. git, filter-branch trên tất cả các chi nhánh
- 30. Làm thế nào để kết hợp tổng thể từ xa với chi nhánh địa phương
Cảm ơn, 'git branch --merged' trông rất đẹp. Thật không may nó sẽ không hoạt động đúng với các nhánh đã được rebased trong quá trình tích hợp .. nhưng tốt, ít nhất * một số * của shitload (160) của các nhánh được liệt kê là siêu an toàn để xóa. – ThiefMaster
Các nhánh bị xóa thì phức tạp hơn ... Điều đó có thể xảy ra, nhưng nó đòi hỏi ít nhất là shellscript sẽ kéo danh sách các bản sửa đổi sau điểm nhánh và sau đó tìm kiếm các chữ ký vá dọc theo nhánh master ... không nhận thức được bất kỳ giải pháp đã nấu chín nào cho việc này. –
Điều này là tuyệt vời, mặc dù tôi đã đánh vào snag nhỏ. Tôi đặt tên các nhánh của mình bằng một '/', ví dụ: một tên chi nhánh của tôi có thể là 'sf/correct-typo-7'. Do tham số '-f 3' trên ** cut **, tên nhánh này sẽ bị cắt bớt thành' sf'. Thay đổi tham số thành '-f 3-', sửa vấn đề này và xử lý các nhánh với bất kỳ số lượng dấu gạch chéo nào. –