回答:
ブランチがローカルのみの場合、次のようにブランチがマージされている場合は-dを使用できます。
git branch -d branch-name
ブランチにマージする予定のないコードが含まれている場合は、代わりに-Dを使用してください。
ブランチが(Bitbucketの)アップストリームリポジトリにある場合、次の方法でリモート参照を削除できます。
git push origin :branch-name
また、Bitbucket Webサイトを使用している場合は、サイトの[ コミット ]の下にある[ 機能ブランチ ]タブに移動して、プッシュしたブランチを削除できます。そこに省略記号のアイコンがあります。それをクリックし、[ブランチの削除]を選択します。そこにすべての変更をドロップしたいことを確認してください!
@Marcusの回答に加えて、次の方法でリモートブランチを削除することもできます。
git push [remote-name] --delete [branch-name]
Bitbucket左側のメニューにある支店に行きます。
私のリポジトリのブランチの数が数百を超えたときに、私はこの小さなスクリプトを書きました。他の方法(CLIを使用)については知りませんでしたので、セレンで自動化することにしました。それは単にBitbucketウェブサイトを開き、ブランチに行き、ページを最後までスクロールし、すべてのブランチオプションメニューをクリックします->削除ボタンをクリックします->はいをクリックします。最後のN(100-デフォルト)ブランチを保持し、特定の名前のブランチをスキップするように調整できます(マスター、開発-デフォルト、その他の場合もあります)。これがあなたに合うなら、あなたはその方法を試すことができます。
https://github.com/globad/remove-old-branches
必要なのは、リポジトリのクローンを作成し、適切なバージョンのChromeウェブドライバをダウンロードし、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
おもしろければ、ブランチのリストページ(たとえば、マージ済み)に移動して、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!`)) }) })
<yourprofilenick>
BitBucketのニックネームに置き換えます<your_organization_path>
組織のパスに置き換えますまず、ページのソースにCSRFトークンを含むページが必要なので、次のように選択します。
https://bitbucket.org/snippets/new?owner=<yourprofilenick>
次に、ブランチリスト(ブランチリスト内)ごとにCSRFトークンを取得し、そのブランチを削除します。
repo設定で削除する前に重要なブランチを防ぐための注意事項。
メインブランチは削除されません。
ログインする必要があります。
そのページに表示されているブランチのみを削除します(残りのブランチを削除するには、次のページに移動する必要があります)。