LibGit2Sharp 将libgit2(本机Git实现)的所有可能性和速度带到了.NET和Mono的托管世界。
注:我项目应用的LibGitSharp版本为0.27.0.0
private void YJW_clone()
{
Repository.Clone("https://xxx/yangjw/123.git", "path");
}
private void YJW_clone()
{
var co = new CloneOptions();
co.CredentialsProvider = (_url, _user, _cred) => new UsernamePasswordCredentials { Username = "YangJiaWei_Username", Password = "YangJiaWei_Password " };
string logMessage = Repository.Clone("http://xxx/yangjw/123.git", "daobanmojie", co);
Console.WriteLine(logMessage);
}
private void YJW_fetch()
{
string logMessage = "";
using (var repo = new Repository("daobanmojie"))
{
var remote = repo.Network.Remotes["origin"];
var refSpecs = remote.FetchRefSpecs.Select(x => x.Specification);
Commands.Fetch(repo, remote.Name, refSpecs, null, logMessage);
}
Console.WriteLine(logMessage);
private void YJW_fetch()
{
using (var repo = new Repository("daobanmojie"))
{
FetchOptions options = new FetchOptions();
options.CredentialsProvider = new CredentialsHandler((url, usernameFromUrl, types) =>
new UsernamePasswordCredentials()
{
Username = "YangJiaWei_Username",
Password = "YangJiaWei_Password "
});
foreach (Remote remote in repo.Network.Remotes)
{
IEnumerable<string> refSpecs = remote.FetchRefSpecs.Select(x => x.Specification);
Commands.Fetch(repo, remote.Name, refSpecs, options, logMessage);
}
}
Console.WriteLine(logMessage);
}