小编use*_*426的帖子

LibGit2Sharp - 暂存和提交文件的最佳方式

我正在尝试编写一个基本的 C# GIT 函数,用于提交本地工作目录并将其推送到其主存储库。这是我第一次尝试使用 GIT,我仍在尝试了解一些基础知识。

这是我的代码。它不是很复杂,它需要做的就是确保存储库随我的工作目录中的任何更改进行更新。它有效,但有一个警告,如下所述

public void Sync()
{
    using (var repo = new Repository(@"C:\Temp\Git\test"))
    {
        repo.Stage("*");
        repo.Commit("This is my comment");

        Remote remote = repo.Network.Remotes["origin"];
        var options = new PushOptions();

        options.CredentialsProvider = new CredentialsHandler(
        (url, usernameFromUrl, types) =>
            new UsernamePasswordCredentials()
            {
                Username = "myusername",
                Password = "mypassword"
            });

        var pushRefSpec = @"refs/heads/master";
        repo.Network.Push(remote, pushRefSpec, options, null, "push done...");

    }
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题是这样的。如果我添加或修改任何文件,那么它们会在存储库中相应更新。但是,如果没有需要提交的文件,则会引发以下异常:

No changes; nothing to commit
Run Code Online (Sandbox Code Playgroud)

我希望能够做的是在尝试提交操作之前确定是否需要提交文件,因此如果不需要执行任何操作,则能够正常退出。IE 的内容大致如下:

if (there are files to commit)
{
    repo.Commit("This is my comment"); …
Run Code Online (Sandbox Code Playgroud)

c# git libgit2sharp

4
推荐指数
1
解决办法
3599
查看次数

标签 统计

c# ×1

git ×1

libgit2sharp ×1