2013-03-06 190 views
27

我們在Team Foundation Service中使用git,並試圖通過運行以下命令來找到刪除遠程分支的方法。Git刪除TFS 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用戶拒絕?

+3

您似乎沒有足夠的權利來執行此操作。這個命令是正確的btw – iberbeu 2013-03-06 22:20:43

回答

2

git push手冊頁:

-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參數,看看是否有幫助。

+0

- 強制不起作用=( – 2014-03-21 09:53:19

5

要刪除遠程分支,你可以使用:

git push origin :TheBranchName 
+0

我試着「git push origin --delete BranchName」並且得到一個錯誤,我沒有所需的權限 - 然後我按照你的建議與「git推送起源:BranchName「,並提示我爲我的憑據,然後工作!如何/爲什麼這樣工作? – Omaer 2016-10-19 13:09:45

3

在第一個答案,這link的第一評論回答你的問題:

「有人已經啓用了鉤在遠程回購是禁止刪除 - 通常這樣做是爲了讓別人無法將重定向的分支推入回購(我保留了一大堆git存儲庫,它們都是用這種方式配置的,儘管沒有掛鉤。 )

查看遠程存儲庫中的掛接/目錄。將會有一個名爲「update」的腳本;這就是拒不讓你刪除的分支。」

+0

問題涉及到TFS,它不支持遠程掛鉤。它,但沒有通過掛鉤/目錄 - 你必須編寫一個TFS事件處理程序,例如http://almsports.net/tfs-server-side-check-in-policy-for-git-repositories/1025/ – 2015-07-02 11:52:53

22

的安全選項可以爲存儲庫在
1.代碼 - >瀏覽器
2訪問的選擇回購形式的資源管理器
3.倉庫的詳細信息,您應該單擊資源管理器旁邊的存儲庫的名稱。
4.選擇管理存儲庫...菜單

在這裏,您可以配置每個貢獻者組爲倉庫的權利和個人用戶和他們的分支。「重寫和摧毀歷史(推力)」選項獵取允許或繼承允許可以強制推送。

+1

哦哇,這是一個隱藏的小寶石。 – 2015-09-29 18:49:11

+0

這應該是被接受的答案 – 2016-08-15 18:03:57

+0

我不得不明確地加入自己並給予我自己的許可,並且它可以工作 – matthewpavkov 2018-02-22 21:01:55

1

我登陸這個問題尋找一種方法來刪除VSO中的一個分支。對於任何在這裏的人來說,我有一個有點麻煩的過程,但是有效。從分支創建一個拉取請求。一旦拉請求被創建,放棄它。一旦放棄了請求,就會看到一個刪除源分支按鈕。點擊以刪除分支。

+0

它會很好,如果它工作的我只是嘗試過 - 點擊放棄後,只有Reactivate對接並且沒有任何「刪除」選項。 – JustAMartin 2016-06-07 08:41:55

1

我想編輯Ursegor answer但我缺乏這樣做的聲譽。

在版本14.102.25423中。0(Team Foundation Server的2015年更新3)安全性/權限選項可以在存儲庫的訪問:

  1. Code/Explorer
  2. 選擇資源庫形成的資源管理器
  3. 單擊三個點...的repositoy名稱旁邊。
  4. 選擇Security
0

我剛打開Git的UI工具,打開回購,並從那裏被刪除的分支,它工作得很好。我無法從TFS做到。