Xóa chi nhánh trong Bitbucket


133

Tôi đã tạo ra rất nhiều chi nhánh trong một trong các kho lưu trữ của chúng tôi. Những nhánh đó là để thử nghiệm trước khi nó được kéo đến bản gốc. Bây giờ tôi thấy rất nhiều trong số họ trong danh sách và họ sẽ không bao giờ sử dụng nó nữa. Làm thế nào để xóa những nhánh đó trực tiếp vào Bitbucket?

Câu trả lời:


224

Nếu các nhánh chỉ cục bộ, bạn có thể sử dụng -d nếu nhánh đã được hợp nhất, như

git branch -d branch-name

Nếu chi nhánh chứa mã bạn không bao giờ có kế hoạch hợp nhất, thay vào đó hãy sử dụng -D .

Nếu chi nhánh nằm trong repo ngược dòng (trên Bitbucket), bạn có thể xóa tham chiếu từ xa bằng cách

git push origin :branch-name

Ngoài ra, nếu bạn đang ở trên trang web Bitbucket, bạn có thể xóa các chi nhánh bạn đã đẩy bằng cách đi tới tab Chi nhánh tính năng bên dưới Cam kết trên trang web. Ở đó bạn sẽ tìm thấy một biểu tượng dấu chấm lửng. Bấm vào đó, sau đó chọn Xóa chi nhánh . Chỉ cần chắc chắn rằng bạn muốn bỏ tất cả các thay đổi ở đó!

nhập mô tả hình ảnh ở đây


2
Nếu tôi chạy 'git Branch -r', tôi nhận thấy BB không xóa chi nhánh khỏi máy chủ. Nó không còn hiển thị trong GUI, nhưng nó hiển thị trên máy chủ git.
áo đậu

37

Để xóa chi nhánh khỏi Bitbucket,

  1. Chuyển đến Tổng quan (Kho lưu trữ của bạn> các nhánh ở thanh bên trái)
  2. Nhấp vào số lượng chi nhánh (sẽ hiển thị cho bạn danh sách các chi nhánh)
  3. Bấm vào nhánh mà bạn muốn xóa
  4. Trên góc trên bên phải, nhấp vào 3 dấu chấm (bên cạnh nút Hợp nhất).
  5. Có tùy chọn "Xóa chi nhánh" nếu bạn có quyền.

1
'Tổng quan' ở đâu? Nếu bạn có nghĩa là Nguồn, tôi không thấy tùy chọn 'Xóa Chi nhánh' trong ...
niico

7
Bước 1 phải là "đi đến repo của bạn và nhấp vào 'các nhánh' trong thanh bên trái."
Noumenon

19

Ngoài câu trả lời do @Marcus đưa ra, giờ đây bạn cũng có thể xóa một chi nhánh từ xa thông qua:

git push [remote-name] --delete [branch-name] 

8

trong Bitbucket đi đến các chi nhánh trong menu bên trái.

  1. Chọn chi nhánh bạn muốn xóa.
  2. Chuyển đến cột hành động, nhấp vào ba dấu chấm (...) và chọn xóa.

7

Tôi có thể xóa hầu hết các chi nhánh của mình nhưng một chi nhánh trông như thế này và tôi không thể xóa nó:

nhập mô tả hình ảnh ở đây

Hóa ra ai đó đã đặt Branch permissionsdưới Settingsvà từ đó không được kiểm tra Allow deleting this branch. Hy vọng điều này có thể giúp đỡ một ai đó.

nhập mô tả hình ảnh ở đây

Cập nhật : Trường hợp cài đặt được đặt từ câu hỏi trong bình luận. Nhập kho lưu trữ mà bạn không cần chỉnh sửa để nhận menu. Bạn có thể cần đặc quyền quản trị viên để thay đổi điều này.

nhập mô tả hình ảnh ở đây


Nơi nào người ta có thể tìm thấy "Cài đặt"? Tôi phải xóa nhánh chính hoặc tất cả các tập tin trong đó. Tôi phải làm nó như thế nào?

3

Bước 1: Đăng nhập bằng Bitbucket

Bước 2: Chọn Kho lưu trữ của bạn trong danh sách Kho lưu trữ. nhập mô tả hình ảnh ở đây

Bước 3: Chọn các nhánh trong menu bên trái. nhập mô tả hình ảnh ở đây

Bước 4: Điểm con trỏ trên nhánh nhấp vào ba dấu chấm (...) Chọn Xóa (Xem trong Hình ảnh dưới đây) nhập mô tả hình ảnh ở đây


2

Nếu bạn đang sử dụng IDE pycharm để phát triển và bạn đã thêm Git với nó. bạn có thể trực tiếp xóa chi nhánh từ xa khỏi pycharm. Từ thanh công cụ VCS -> Git -> Chi nhánh -> Chọn chi nhánh -> và Xóa . Nó sẽ xóa nó khỏi máy chủ git từ xa.


2

Tôi đã viết kịch bản nhỏ này khi số lượng chi nhánh trong repo của tôi vượt quá vài trăm. Tôi không biết về các phương pháp khác (với CLI) vì vậy tôi quyết định tự động hóa nó bằng selen. Nó chỉ đơn giản là mở trang web Bitbucket, đi đến Chi nhánh, cuộn trang xuống cuối và nhấp vào mỗi menu tùy chọn chi nhánh -> nhấp vào nút Xóa -> nhấp Có. Nó có thể được điều chỉnh để giữ các nhánh N (100 - mặc định) cuối cùng và bỏ qua các nhánh có tên cụ thể (chính, phát triển - mặc định, có thể nhiều hơn). Nếu điều này phù hợp với bạn, bạn có thể thử theo cách đó.

https://github.com/globad/remove-old-branches

Tất cả những gì bạn cần là sao chép kho lưu trữ, tải xuống phiên bản Chrome-webdo thích hợp, nhập một vài hằng số như URL vào kho lưu trữ của bạn và chạy tập lệnh.

Mã này đủ đơn giản để hiểu. Nếu bạn có bất kỳ câu hỏi nào, hãy viết bình luận / tạo một vấn đề.


1

Hãy thử lệnh này, nó sẽ thanh lọc tất cả các nhánh đã được sáp nhập vào developnhánh.

for i in `git branch -r --merged origin/develop| grep origin | grep -v '>' \
   | grep -v master | grep -v develop | sed -E "s|^ *origin/||g"`; \
do \
   git push origin $i --delete; \
done

0

Trong Android Studio , các tùy chọn ở góc bên phải của IDE:

  • Thay đổi / kiểm tra chi nhánh địa phương khác
  • Xóa các nhánh cục bộ không mong muốn (ví dụ v0.0.1 ...)
  • Xóa các nhánh từ xa không mong muốn (ví dụ: origin / v0.0.1 ...) - bước này sẽ xóa các nhánh trong BitBucket nếu các nhánh không bị ngăn chặn bị xóa và chúng không phải là CHI NHÁNH CHÍNH .

0

Nếu bạn thích vui vẻ, thì bạn có thể chỉ cần truy cập trang danh sách của các chi nhánh của bạn (ví dụ: đã hợp nhất) và chỉ cần chạy trong bảng điều khiển javascript:

document.querySelectorAll('tr td div a:first-child').forEach(function(item) { fetch('https://bitbucket.org/snippets/new?owner=<yourprofilenick>', {'credentials': 'same-origin'}).then((response) => {return response.text()}).then(function(string) { return /'csrfmiddlewaretoken' value='(.*)'/g.exec(string)[1] }).then(function(csrf) { if (!~item.innerText.indexOf('/')) return; 
 fetch(`https://bitbucket.org/!api/2.0/repositories/<your_organization_path>/refs/branches/${item.innerText}`, {headers: {"x-csrftoken": csrf}, credentials: "same-origin", method: 'DELETE'}).then(() => console.log(`${item.innerText} DELETED!`)) }) })

TRƯỚC KHI CHẠY

  • thay thế <yourprofilenick>bằng nick BitBucket của bạn
  • thay thế <your_organization_path>bằng con đường tổ chức của bạn

LÀM THẾ NÀO NÓ HOẠT ĐỘNG

Trước tiên, chúng tôi cần một trang có mã thông báo CSRF trong nguồn trang, vì vậy tôi chọn:

https://bitbucket.org/snippets/new?owner=<yourprofilenick>

Sau đó, đối với mỗi chi nhánh (trong danh sách chi nhánh), nó nhận được mã thông báo CSRF và xóa chi nhánh đó.

THƯỞNG

Remeber để ngăn các nhánh nhạy cảm trước khi xóa trong cài đặt repo.

Nó sẽ không xóa chi nhánh chính.

THÔNG TIN BỔ SUNG

Bạn phải đăng nhập.

Nó chỉ xóa các nhánh hiển thị trên trang đó (vì vậy để xóa phần còn lại của các nhánh bạn phải chuyển đến trang tiếp theo).

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.