2012-10-11 39 views

回答

19

Branch.IsCurrentRepositoryHead應該這樣做。

我想Repository.Head也會做同樣的事情,如果你不希望通過分支機構迭代...

+0

萬一它會捕獲其他任何人,因爲這個屬性的確切性,如果你已經簽出'Branch',但是你在一個獲取的遠程服務器的後面或者之前,它將返回false。 – patridge

+0

此功能不應該關心任何遠程存儲庫。它從字面上比較分支名稱。如果您認爲這取決於遠程存儲庫確實發生變化,請提交包含複製案例的錯誤報告。 –

0

我想,而不是穿過樹枝去和檢查每個分支是否是當前頭,最簡單的方法是直接從倉庫主管得到分支名稱:

using (var repo = new Repository(@"path to .git")) 
{ 
    var currentBranchName = repo.Head.FriendlyName; 
} 

然後,您可以獲取分支本身通過

repo.Branches[currentBranchName] 
+0

你可以使用'Head'獲取分支:'repo.Head.Reference.TargetIdentifier'。 –