team Foundation Serviceでgitを使用しており、次のコマンドを実行してリモートブランチを削除する方法を見つけようとしています。
git Push Origin --delete TheBranchName
リモートサーバーは次のエラーで拒否を続けます
! [remote rejected] TheBranchName (TF401026: The ForcePush permission is required to perform this action.) error: failed to Push some refs to 'https://xxx.visualstudio.com/DefaultCollection/_git/Xxxxxx'
tFSでユーザーに正しいアクセス許可を設定する方法はありますか?
リポジトリのセキュリティオプションには、次の場所からアクセスできます。
1。コード->エクスプローラー
2。エクスプローラーからレポを選択します
3。リポジトリの詳細で、エクスプローラの横のリポジトリの名前をクリックする必要があります。
4。 [リポジトリの管理...]メニューを選択します
ここでは、リポジトリとそのブランチの各貢献者グループと個々のユーザーの権限を設定できます。 「履歴を書き換えて破棄する(プッシュを強制する)」オプションは、プッシュを強制できるように許可または継承許可にする必要があります。
リモートブランチを削除するには、次を使用できます:
git Push Origin :TheBranchName
から git Push
manページ:
-f
--force
Usually, the command refuses to update a remote ref that is not an ancestor of the
local ref used to overwrite it. This flag disables the check. This can cause the
remote repository to lose commits; use it with care.
削除しようとしているブランチは、あなたがいるブランチの祖先ではないようです-これを追加--force
引数とそれが役立つかどうかを確認します。
rsegor answer を編集したいのですが、そうする評判がありません。
バージョン14.102.25423.0(Team Foundation Server 2015 Update 3)では、リポジトリのセキュリティ/アクセス許可オプションにアクセスできます:
Code/Explorer
...
リポジトリ名の横。Security
この最初の回答と最初のコメントで link があなたの質問に答えられます:
」誰かが削除を禁止しているリモートリポジトリのフックを有効にしました-これは通常、誰かがリベースされたブランチをリポジトリにプッシュできないようにするためです。 gitリポジトリのコレクションであり、それらはすべてこのように構成されていますが、フックはありません。)
リモートリポジトリのhooks /ディレクトリを調べます。 「update」という名前のスクリプトがあります。これは、ブランチを削除することを拒否していることです。」
VSOでブランチを削除する方法を探して、私はこの質問に着きました。ここに上陸する人には、少し面倒ですが、うまくいくプロセスがあります。ブランチからプルリクエストを作成します。プルリクエストが作成されたら、それを放棄します。リクエストを破棄すると、ソースブランチの削除ボタンが表示されます。それをクリックして、ブランチを削除します。
Git UIツールを開き、リポジトリを開いてそこからブランチを削除するだけで、うまくいきました。 TFSからはできませんでした。