답변:
분기가 로컬에만있는 경우 분기가 병합 된 경우 -d 를 사용할 수 있습니다.
git branch -d branch-name
분기에 병합 할 계획이없는 코드가 있으면 대신 -D를 사용하십시오.
지점이 업스트림 리포지토리 (Bitbucket)에 있으면 다음을 통해 원격 참조를 제거 할 수 있습니다.
git push origin :branch-name
또한 Bitbucket 웹 사이트 에있는 경우 사이트의 커밋 아래 에있는 기능 분기 탭 으로 이동하여 푸시 한 분기를 제거 할 수 있습니다. 줄임표 아이콘이 있습니다. 클릭 한 다음 분기 삭제 를 선택하십시오 . 모든 변경 사항을 삭제하십시오.
@Marcus의 답변 외에도 이제 다음을 통해 원격 지점을 삭제할 수 있습니다.
git push [remote-name] --delete [branch-name]
나는 대부분의 분기를 삭제할 수 있지만 하나는 다음과 같으며 삭제할 수 없습니다.
밝혀졌다 누군가가 설정 한 Branch permissions
에서 Settings
거기되지 않은에서 Allow deleting this branch
. 이것이 누군가를 도울 수 있기를 바랍니다.
업데이트 : 코멘트에서 설정이있는 곳. 메뉴를 얻기 위해 편집하지 않을 저장소를 입력하십시오. 이를 변경하려면 관리자 권한이 필요할 수 있습니다.
내 레포의 지점 수가 수백을 초과했을 때이 작은 스크립트를 작성했습니다. 다른 방법 (CLI 사용)에 대해서는 몰랐으므로 셀레늄으로 자동화하기로 결정했습니다. Bitbucket 웹 사이트를 열고 지점으로 이동하여 페이지를 끝까지 스크롤 한 다음 모든 지점 옵션 메뉴를 클릭하십시오-> 삭제 버튼을 클릭하십시오-> 예를 클릭하십시오. 마지막 N (100-기본값) 지점을 유지하고 특정 이름을 가진 지점을 건너 뛰도록 조정할 수 있습니다 (마스터, 개발-기본값, 더 많을 수 있음). 이것이 당신에게 적합하다면, 당신은 그렇게 시도 할 수 있습니다.
https://github.com/globad/remove-old-branches
저장소를 복제하고 적절한 버전의 Chrome-webdriver를 다운로드하고 URL과 같은 상수를 저장소에 입력하고 스크립트를 실행하기 만하면됩니다.
코드는 이해하기에 간단합니다. 궁금한 점이 있으면 의견을 작성하고 이슈를 만드십시오.
이 명령을 사용하면 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
당신이 재미를 좋아한다면, 당신은 당신의 브랜치 (예를 들어 병합)의 리스팅 페이지로 가서 자바 스크립트 콘솔에서 실행할 수 있습니다 :
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 설정에서 삭제하기 전에 민감한 분기를 방지하는 것을 기억하십시오.
메인 브랜치를 삭제하지 않습니다.
로그인해야합니다.
해당 페이지에 표시된 브랜치 만 삭제하므로 나머지 브랜치를 삭제하려면 다음 페이지로 이동해야합니다.