2

ブランチを削除してプッシュしましたがbranch -r、他のユーザーにはまだ表示されています。

serverAlpha $ git push origin --delete origin/issue186
serverAlpha $ git push

serverBeta $ git pull
serverBeta $ git branch -r
  origin/HEAD -> origin/master
  origin/issue186
  origin/master

git remote prune originただし、他の各ユーザーがこれを実行する必要があることは承知しています。ブランチが削除されたことを他のユーザーが確認できるように、ブランチを削除するにはどうすればよいですか? 私は他のすべての人に剪定を期待することも、連絡することさえできません。

4

3 に答える 3

3

TL;DR

できません。一部の操作は、Git では単純にローカルです。

git-branch と git-ls-remote

このgit branchコマンドは、ローカル参照で動作します。この-rフラグは単にリモート トラッキング ブランチへの出力を制限するだけで、リモートとは直接通信しません。一方、git ls-remote実際には、ローカル リポジトリではなく、リモートからの参照が表示されます。

他の人の参照を削除する

これは Git ではできません。分散型 VCS の全体的な考え方は、状態が非集中型の方法で存在できるということです。あなたの場合、これが意味することは、誰かのデスクトップの参照が、定義されたリモートのベアリポジトリの参照と一致しない可能性があるということです。

デスクトップ上の作業ブランチを他の誰かが削除できるようにしたいですか? おそらくそうではありません。Git ではこれが許可されていないため、そのために睡眠を失う必要はありません。

最善の方法は、サーバーからブランチを削除することです。あなたが言うように、すでに作品を複製している他の人と「通信できない」場合は、その作品がコミットされた場合に、そのブランチに基づいた作品を元に戻すかリベースする以外にできることはありません。いくつかの本線ブランチ。

于 2013-08-22T16:04:59.987 に答える
2

他の人のブランチを削除することはできません。彼らは彼らのものであり、遠隔追跡のものでさえ.

-p (--prune) フラグを使用している場合 (私は通常そうします)、ブランチを削除したリモートから次にフェッチするときに、それらのリモート追跡ブランチが削除されます。

于 2013-08-22T16:09:59.463 に答える
1

あなたがオリジンのコントロールを持っていて、他の人がすでにそれを引っ張っている場合、あなたは運が悪い.

ただし、あなたのユースケースでは、origin/master ブランチに新しいコミットを作成して、既存のファイルをすべて削除し、使用する必要がある正しいポリシー/ブランチをユーザーに示す README を追加するだけです。

そうすれば、ブランチを使用した以前の共同作業者にフェッチの問題はなく、以前に origin/master を使用した可能性のある共同作業者がどのように進めるべきかは非常に明確です。

于 2013-08-22T16:12:26.230 に答える