【发布时间】:2021-01-28 13:03:35
【问题描述】:
我需要将本地文件夹推送到 Git 存储库。以下是我到目前为止尝试过的:
public static async Task CommitAllChanges(string message,string filePath, string cloneUrl)
{
try
{
var _folder = new DirectoryInfo(filePath);
string path = LibGit2Sharp.Repository.Init(_folder.FullName);
using (var repo = new LibGit2Sharp.Repository(path))
{
var files = _folder.GetFiles("*", SearchOption.AllDirectories).Select(f => f.FullName);
Commands.Stage(repo, "*");
repo.Commit(message, new LibGit2Sharp.Signature("sormita", "sormita@gmail.com", DateTimeOffset.Now),
new LibGit2Sharp.Signature("sormita", "sormita@gmail.com", DateTimeOffset.Now));
//push files
string name = "origin";
repo.Network.Remotes.Add(name, cloneUrl);
var remote = repo.Network.Remotes.FirstOrDefault(r => r.Name == name);
var options = new PushOptions
{
CredentialsProvider = (_url, _user, _cred) =>
new UsernamePasswordCredentials { Username = "email", Password = "password" }
};
string pushRefSpec = @"refs/heads/master";
repo.Network.Push(remote, pushRefSpec, options);
}
}
catch (Exception ex)
{
throw ex;
}
}
我可以推送,但 GitHub 的存储库中没有文件显示。
以上代码将成功推送一个目录到 Github 仓库。
【问题讨论】:
标签: github libgit2sharp