2012-12-02 61 views
0

我希望做以下使用NGit,但幾乎一整天時完全喪失後:如何使用LS-遠程在NGit

  • 創建一個空的回購
  • 添加遠程「原點」使用URL和憑據
  • 運行LS-遠程獲得對origin

master分支的最新散列如果有人能告訴我在行動的這個例子我會不勝感激

回答

1
using System.Collections.Generic; 
using System.Linq; 
using NGit.Api; 
using Sharpen; 

// git init 
string path = @"C:\git\repo1"; 
Git git = Git.Init().SetDirectory(new FilePath(path)).Call(); 
// after init, you can call the below line to open 
// Git git = Git.Open(new FilePath(path)); 

// git remote origin 
StoredConfig config = git.GetRepository().GetConfig(); 
config.SetString("remote", "origin", "url", @"http://user:[email protected]/user/repo1.git"); 
config.Save(); 

// git ls-remote 
ICollection<Ref> refs = git.LsRemote().SetRemote("origin").Call(); 
Ref master = refs.FirstOrDefault(a => a.GetName() == "refs/heads/master"); 
if (master != null) 
{ 
    string hash = master.GetObjectId().Name; 
} 
+0

謝謝回答!這似乎並沒有顯示任何參考我的回購,雖然(它肯定得到了參考'git ls-remote origin'在命令提示符下工作正常。我做錯了什麼?另外,在旁註中,您將如何處理這個github如果你使用的是私鑰? – Doug

+0

你把master分支推到github上? – linquize