无法使用 LibGit2Sharp 将本地目录推送到 GitHub

时间:2021-01-28 13:03:35

标签: github libgit2sharp

我需要将本地文件夹推送到 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 仓库。

2 个答案:

答案 0 :(得分:0)

<块引用>

如何使用 GitHub PAT 令牌进行此推送?

将其设置为凭据提供程序的密码。 PAT 是密码。

如果您在问题中使用了实际密码,请立即更改

答案 1 :(得分:0)

关于如何将本地目录推送到 GitHub 存储库的完整实现,请参阅我的问题代码详细信息。