2012-10-11 15 views
14

तो का उपयोग कर LibGit2Sharp https://github.com/libgit2/libgit2sharp आप इसLibGit2Sharp के साथ वर्तमान/सक्रिय शाखा कैसे प्राप्त करें?

using (var repo = new Repository(@"path to .git")) 
{ 
    foreach (var branch in repo.Branches) 
    { 
     Debug.WriteLine(branch.Name); 
    } 
} 

तरह शाखाओं के माध्यम से चल सकता है लेकिन मैं वर्तमान/सक्रिय शाखा कैसे मिलता है?

उत्तर

19

Branch.IsCurrentRepositoryHead चाल चलाना चाहिए।

मुझे लगता है कि अगर आप शाखाओं के माध्यम से पुनरावृति नहीं करना चाहती Repository.Head भी एक ही बात करेंगे ...

+0

मामले में: सरल दृष्टिकोण सीधे भंडार प्रमुख से शाखा का नाम प्राप्त करने के लिए है यह किसी और को पकड़ता है, क्योंकि यह संपत्ति कितनी सटीक है, यदि आपने 'शाखा' की जांच की है तो यह झूठी वापसी होगी, लेकिन आप उस शाखा के पीछे या उससे आगे की तरफ रिमोट पर हैं। – patridge

+0

इस फ़ंक्शन को किसी भी दूरस्थ भंडार के बारे में परवाह नहीं करना चाहिए। यह सचमुच शाखा नामों के खिलाफ एक स्ट्रिंग तुलना करता है। अगर आपको लगता है कि यह दूरस्थ भंडार के आधार पर बदलता है, तो कृपया एक प्रजनन मामले के साथ एक बग रिपोर्ट दर्ज करें। –

0

मुझे लगता है कि, बजाय शाखाओं के माध्यम से जा रहा है और देखना हो प्रत्येक शाखा वर्तमान प्रधान है की

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

फिर आप शाखा में ही प्राप्त कर सकते हैं के माध्यम से

repo.Branches[currentBranchName] 
+0

आप शाखा पाने के लिए केवल 'हेड' का उपयोग कर सकते हैं: 'repo.Head.Reference.TargetIdentifier'। –

संबंधित मुद्दे