Bitbucket에서 분기 삭제


133

리포지토리 중 하나에 많은 지점을 만들었습니다. 이 지점들은 마스터에게 가져 오기 전에 테스트를위한 것입니다. 이제는 목록에 많은 것들이 표시되며 다시는 사용하지 않을 것입니다. 해당 지점을 Bitbucket으로 직접 삭제하는 방법은 무엇입니까?

답변:


224

분기가 로컬에만있는 경우 분기가 병합 된 경우 -d 를 사용할 수 있습니다.

git branch -d branch-name

분기에 병합 할 계획이없는 코드가 있으면 대신 -D를 사용하십시오.

지점이 업스트림 리포지토리 (Bitbucket)에 있으면 다음을 통해 원격 참조를 제거 할 수 있습니다.

git push origin :branch-name

또한 Bitbucket 웹 사이트 에있는 경우 사이트의 커밋 아래 에있는 기능 분기 탭 으로 이동하여 푸시 한 분기를 제거 할 수 있습니다. 줄임표 아이콘이 있습니다. 클릭 한 다음 분기 삭제 를 선택하십시오 . 모든 변경 사항을 삭제하십시오.

여기에 이미지 설명을 입력하십시오


2
'git branch -r'을 실행하면 BB가 서버에서 분기를 삭제하지 않는 것을 알 수 있습니다. 더 이상 GUI에 표시되지 않지만 git 서버에는 표시됩니다.
저지 빈

37

Bitbucket에서 지점을 삭제하려면

  1. 개요로 이동 (저장소> 왼쪽 사이드 바 지점 )
  2. 지점 수를 클릭하십시오 (분지 목록이 표시되어야 함).
  3. 삭제할 지점을 클릭하십시오
  4. 오른쪽 상단에서 3 개의 점 (병합 버튼 옆)을 클릭하십시오.
  5. 권한이있는 경우 "지점 삭제"옵션이 있습니다.

1
'개요'는 어디에 있습니까? 소스를 의미하는 경우 ...
niico

7
1 단계는 "리포지토리로 가서 왼쪽 메뉴에서 '분기'를 클릭하십시오."
누 메논

19

@Marcus의 답변 외에도 이제 다음을 통해 원격 지점을 삭제할 수 있습니다.

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

8

에서 의 Bitbucket 왼쪽 메뉴에 지사로 이동합니다.

  1. 삭제할 지점을 선택하십시오.
  2. 작업 열로 이동하여 세 개의 점 (...)을 클릭하고 삭제를 선택하십시오.

7

나는 대부분의 분기를 삭제할 수 있지만 하나는 다음과 같으며 삭제할 수 없습니다.

여기에 이미지 설명을 입력하십시오

밝혀졌다 누군가가 설정 한 Branch permissions에서 Settings거기되지 않은에서 Allow deleting this branch. 이것이 누군가를 도울 수 있기를 바랍니다.

여기에 이미지 설명을 입력하십시오

업데이트 : 코멘트에서 설정이있는 곳. 메뉴를 얻기 위해 편집하지 않을 저장소를 입력하십시오. 이를 변경하려면 관리자 권한이 필요할 수 있습니다.

여기에 이미지 설명을 입력하십시오


"설정"을 어디에서 찾을 수 있습니까? 메인 브랜치 또는 그 안의 모든 파일을 삭제해야합니다. 어떻게합니까?

3

1 단계 : Bitbucket에 로그인

2 단계 : 리포지토리 목록에서 리포지토리를 선택합니다. 여기에 이미지 설명을 입력하십시오

3 단계 : 왼쪽 메뉴에서 분기를 선택합니다. 여기에 이미지 설명을 입력하십시오

4 단계 : 지점의 커서 포인트에서 3 개의 점을 클릭합니다 (...) 삭제 선택 (벨로우즈 이미지 참조) 여기에 이미지 설명을 입력하십시오


2

개발을 위해 pycharm IDE를 사용 중이고 이미 Git을 추가 한 경우. pycharm에서 원격 지점을 직접 삭제할 수 있습니다. 툴바에서 VCS-> Git-> 지점-> 분기 선택-> 및 삭제 . 원격 자식 서버에서 삭제합니다.


2

내 레포의 지점 수가 수백을 초과했을 때이 작은 스크립트를 작성했습니다. 다른 방법 (CLI 사용)에 대해서는 몰랐으므로 셀레늄으로 자동화하기로 결정했습니다. Bitbucket 웹 사이트를 열고 지점으로 이동하여 페이지를 끝까지 스크롤 한 다음 모든 지점 옵션 메뉴를 클릭하십시오-> 삭제 버튼을 클릭하십시오-> 예를 클릭하십시오. 마지막 N (100-기본값) 지점을 유지하고 특정 이름을 가진 지점을 건너 뛰도록 조정할 수 있습니다 (마스터, 개발-기본값, 더 많을 수 있음). 이것이 당신에게 적합하다면, 당신은 그렇게 시도 할 수 있습니다.

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

저장소를 복제하고 적절한 버전의 Chrome-webdriver를 다운로드하고 URL과 같은 상수를 저장소에 입력하고 스크립트를 실행하기 만하면됩니다.

코드는 이해하기에 간단합니다. 궁금한 점이 있으면 의견을 작성하고 이슈를 만드십시오.


1

이 명령을 사용하면 develop분기 에 병합 된 모든 분기가 제거됩니다 .

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

에서 안드로이드 스튜디오 , IDE의 오른쪽 아래 옵션 :

  • 다른 지사 변경 / 체크 아웃
  • 원치 않는 로컬 브랜치 삭제 (예 : v0.0.1 ...)
  • 원치 않는 원격 브랜치 삭제 (예 : origin / v0.0.1 ...)-이 단계는 브랜치가 삭제되지 않고 메인 브랜치가 아닌 경우 BitBucket에서 브랜치를 삭제 합니다.

0

당신이 재미를 좋아한다면, 당신은 당신의 브랜치 (예를 들어 병합)의 리스팅 페이지로 가서 자바 스크립트 콘솔에서 실행할 수 있습니다 :

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!`)) }) })

실행하기 전에

  • <yourprofilenick>BitBucket 닉으로 교체
  • <your_organization_path>조직 경로로 교체

작동 방식

먼저 페이지 소스에 CSRF 토큰이있는 페이지가 필요하므로 다음을 선택합니다.

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

그런 다음 각 브랜치 (브랜치 목록)에서 CSRF 토큰을 가져와 해당 브랜치를 삭제합니다.

주의

repo 설정에서 삭제하기 전에 민감한 분기를 방지하는 것을 기억하십시오.

메인 브랜치를 삭제하지 않습니다.

추가 정보

로그인해야합니다.

해당 페이지에 표시된 브랜치 만 삭제하므로 나머지 브랜치를 삭제하려면 다음 페이지로 이동해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.