リポジトリの1つにたくさんのブランチを作成しました。これらのブランチは、マスターにプルされる前にテストするためのものです。今ではリストにたくさんありますが、二度と使用することはありません。それらのブランチを直接Bitbucketに削除するにはどうすればよいですか?
14 に答える
ブランチがローカルのみの場合、ブランチがマージされている場合は-dを使用できます。
git branch -d branch-name
マージする予定のないコードがブランチに含まれている場合は、代わりに-Dを使用してください。
ブランチが(Bitbucket上の)アップストリームリポジトリにある場合は、次の方法でリモート参照を削除できます。
git push origin :branch-name
また、Bitbucket Webサイトにアクセスしている場合は、サイトの[コミット]の下にある[機能ブランチ]タブに移動して、プッシュしたブランチを削除できます。そこに省略記号のアイコンがあります。それをクリックして、[ブランチの削除]を選択します。すべての変更をそこにドロップすることを忘れないでください!
Bitbucketからブランチを削除するには、
- 概要に移動します(リポジトリ>左側のサイドバーのブランチ)
- ブランチの数をクリックします(ブランチのリストが表示されます)
- 削除するブランチをクリックします
- 右上隅にある3つのドットをクリックします([マージ]ボタンの横)。
- 権限がある場合は、「ブランチの削除」のオプションがあります。
@Marcusによる回答に加えて、次の方法でリモートブランチを削除することもできます。
git push [remote-name] --delete [branch-name]
Bitbucketで、左側のメニューのブランチに移動します。
- 削除するブランチを選択します。
- アクション列に移動し、3つのドット(...)をクリックして、[削除]を選択します。
リポジトリ内のブランチの数が数百を超えたときに、この小さなスクリプトを作成しました。他の方法(CLIを使用)については知らなかったので、セレンを使用して自動化することにしました。Bitbucket Webサイトを開き、[ブランチ]に移動し、ページを最後までスクロールして、すべてのブランチオプションメニューをクリックします->[削除]ボタンをクリックします->[はい]をクリックします。最後のN(100-デフォルト)ブランチを保持し、特定の名前のブランチをスキップするように調整できます(master、develop-default、それ以上になる可能性があります)。これがあなたに合っているなら、あなたはそのように試すことができます。
https://github.com/globad/remove-old-branches
必要なのは、リポジトリのクローンを作成し、適切なバージョンのChrome-webdriverをダウンロードし、URLなどの定数をリポジトリに入力して、スクリプトを実行することだけです。
コードは理解できるほど単純です。質問がある場合は、コメントを書く/問題を作成してください。
開発にpycharmIDEを使用していて、すでにGitを追加している場合。pycharmからリモートブランチを直接削除できます。 ツールバーのVCS->Git->Branches-> Select branch->andDeleteから。リモートgitサーバーから削除します。
このコマンドを試してください。ブランチにマージされたすべてのブランチが削除され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
Android Studioでは、IDEの右隅にあるオプションは次のとおりです。
- 他のローカルブランチを変更/チェックアウトする
- 不要なローカルブランチを削除します(つまり、v0.0.1 ...)
- 不要なリモートブランチを削除します(つまり、origin / v0.0.1 ...)-ブランチの削除が妨げられておらず、メインブランチでない場合、この手順でBitBucketのブランチが削除されます。
楽しみが好きな場合は、ブランチのリストページに移動して(たとえば、マージされた)、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トークンを取得し、そのブランチを削除します。
注意
リポジトリ設定で削除する前に機密性の高いブランチを防ぐために覚えておいてください。
メインブランチは削除されません。
追加情報
ログインする必要があります。
そのページに表示されているブランチのみを削除します(したがって、残りのブランチを削除するには、次のページに移動する必要があります)。
git push <repository> -d <branch>
を取得するにはrepository
、git remote -v
コマンドラインに入力します
bitbucket Webコンソールでは、アクティブなプルリクエストがある場合、ブランチの削除は無効になります。