web-dev-qa-db-ja.com

GitはTFS gitリポジトリのリモートブランチを削除します

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でユーザーに正しいアクセス許可を設定する方法はありますか?

30
Eatdoku

リポジトリのセキュリティオプションには、次の場所からアクセスできます。
1。コード->エクスプローラー
2。エクスプローラーからレポを選択します
3。リポジトリの詳細で、エクスプローラの横のリポジトリの名前をクリックする必要があります。
4。 [リポジトリの管理...]メニューを選択します

ここでは、リポジトリとそのブランチの各貢献者グループと個々のユーザーの権限を設定できます。 「履歴を書き換えて破棄する(プッシュを強制する)」オプションは、プッシュを強制できるように許可または継承許可にする必要があります。

22
Ursegor

リモートブランチを削除するには、次を使用できます:

git Push Origin :TheBranchName
5
MrDustpan

から 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引数とそれが役立つかどうかを確認します。

2
David Culp

rsegor answer を編集したいのですが、そうする評判がありません。

バージョン14.102.25423.0(Team Foundation Server 2015 Update 3)では、リポジトリのセキュリティ/アクセス許可オプションにアクセスできます:

  1. Code/Explorer
  2. エクスプローラーからリポジトリを選択します
  3. 3つのドット...リポジトリ名の横。
  4. 選択Security
2
inwenis

この最初の回答と最初のコメントで link があなたの質問に答えられます:

」誰かが削除を禁止しているリモートリポジトリのフックを有効にしました-これは通常、誰かがリベースされたブランチをリポジトリにプッシュできないようにするためです。 gitリポジトリのコレクションであり、それらはすべてこのように構成されていますが、フックはありません。)

リモートリポジトリのhooks /ディレクトリを調べます。 「update」という名前のスクリプトがあります。これは、ブランチを削除することを拒否していることです。」

2
Winner Crespo

VSOでブランチを削除する方法を探して、私はこの質問に着きました。ここに上陸する人には、少し面倒ですが、うまくいくプロセスがあります。ブランチからプルリクエストを作成します。プルリクエストが作成されたら、それを放棄します。リクエストを破棄すると、ソースブランチの削除ボタンが表示されます。それをクリックして、ブランチを削除します。

Git UIツールを開き、リポジトリを開いてそこからブランチを削除するだけで、うまくいきました。 TFSからはできませんでした。

0
Flea