2013-07-19 22 views
15

私のプロジェクトリポジトリのいくつかのリモートブランチを削除したいと思います。Gitのリモートブランチを削除

git push origin :name_of_branch 

と私は私が削除したブランチが表示されません

git branch -r 

でリモートブランチを一覧表示しますが、私のパートナーは

を実行します。私は、次のコマンドを実行しました
git fetch 

以降

git branch -r 

、リストには、私が削除したブランチname_of_branchがまだリストに入っています。どのように私は完全にリストのブランチを削除することができ

error: unable to delete 'name_of_branch': remote ref does not exist 
error: failed to push some refs to 'the_name_of_the_repository' 

:?彼は

git push origin :name_of_branch 

でブランチを削除しようとするとしかし、彼は次のメッセージを受け取りますか

+0

[Gitブランチをローカルとリモートで削除しますか?](http://stackoverflow.com/q/2003505/456814)。 –

答えて

23

あなたのこのパートナーはgit fetchを実行するときに、ブランチの削除は彼のリポジトリに「適用」されていないためです。 fetchはブランチの更新と追加のみを行います。

git remote prune originを実行すると、上流のリポジトリに存在しなくなったリストのリモートブランチを削除することができます。

+4

FYI、 'git remote prune'は、' git fetch --prune'や 'git fetch -p'のためにやや廃止されました。 [Gitバージョン1.6.6リリースノート](https://github.com/git/git/blob/v2.0.0/Documentation/RelNotes/1.6.6。txt#L162-L166): "[' '' git fetch --prune'が '' git remote update'と 'git remote prune'をあまり必要としません(' remote update'も '' remote prune''も削除する予定はありません。 )。 " –

1
git branch -r -d 'remote-branch' 
9

git fetch --prune <remote>を使用して、リモートリポジトリに存在しなくなった(リモートで削除された)ブランチを追跡しているすべてのリモート追跡ブランチを削除できます。 official Linux Kernel Git documentation for fetchから:

-p

--prune

フェッチした後、もはや遠隔に存在する任意のリモート追跡ブランチを削除します。

あなたはthe documentation for git branchに述べたように、コマンド

git branch -D -r <remote>/<branch> 

でもリモート廃止されたリモート追跡ブランチすることができます:-dと一緒に

使用-rはリモート追跡の枝を削除します。リモートリポジトリに存在しなくなったリモートトラッキングブランチ、またはgit fetchが再度それらをフェッチしないように設定されている場合は、リモートトラッキングブランチを削除するのが理にかなっています。

関連する問題