17

プロジェクト リポジトリのリモート ブランチをいくつか削除したいと考えています。次のコマンドを実行しました。

git push origin :name_of_branch

そして、リモートブランチをリストすると

git branch -r

削除したブランチは表示されませんが、私のパートナーが実行されます

git fetch

以降

git branch -r

リストには、削除したブランチname_of_branchがまだリストにあります。ただし、ブランチを削除しようとすると、

git push origin :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'

リストからブランチを完全に削除するにはどうすればよいですか?

4

3 に答える 3

26

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

git remote prune originアップストリーム リポジトリに存在しなくなったリスト内のリモート ブランチを削除するために実行できます。

于 2013-07-19T10:48:24.360 に答える
11

git fetch --prune <remote>リモートリポジトリに存在しなくなったブランチを追跡しているすべてのリモート追跡ブランチを削除するために使用できます (つまり、それらはリモートで削除されました)。の公式 Linux カーネル Git ドキュメントからfetch:

-p

--prune

取得後、リモートに存在しなくなったリモート追跡ブランチを削除します。

コマンドを使用して、廃止されたリモート追跡ブランチをリモートすることもできます

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

のドキュメントにgit branch記載されているとおり:

-rと一緒に使用して-d、リモート追跡ブランチを削除します。リモート追跡ブランチがリモート リポジトリに存在しなくなった場合、またはgit fetchそれらを再度取得しないように構成されている場合にのみ、リモート追跡ブランチを削除する意味があることに注意してください。

于 2013-07-19T11:58:13.867 に答える
1
git branch -r -d 'remote-branch'
于 2013-07-19T10:35:19.897 に答える