ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

c# – LibGit2Sharp如何解决冲突?

2019-06-23 13:52:56  阅读:281  来源: 互联网

标签:c net libgit2sharp


使用libgit2sharp我正在合并来自两个用户的更改:

public void Merge(string branchName)
{
    using (Repository repo = new Repository(this._settings.Directory))
    {
        var branch = repo.Branches[branchName];
        MergeOptions opts = new MergeOptions() { FileConflictStrategy = CheckoutFileConflictStrategy.Merge };
        repo.Merge(branch, this._signature, opts);

        if (repo.Index.Conflicts.Count() > 0)
        {
             //TODO: resolve conflicts
        } 
    }
}

即使策略设置为合并,冲突仍然会出现.我发现无法解决冲突. Conflict对象没有Resolve方法.

除了删除文件或重命名文件之外,有没有办法解决代码冲突?有任何自动解析功能吗?

感谢您的任何帮助!

解决方法:

LibGit2Sharp确实做了一个automerge.如果您看到冲突,则文件是不可合并的.不可合并冲突的一个示例是两个分支都更改同一文件的同一区域.

在这种情况下,LibGit2Sharp会将文件写入工作目录,并在冲突区域周围加上标记.例如,如果某个文件foo.txt存在冲突,则可能如下所示:

<<<<<<< HEAD
this is a change in HEAD
=======
this is a change in the other branch
>>>>>>> other branch

要解决冲突,请将要接受的内容放在工作目录中,然后使用Repository.Index.Add(“foo.txt”)将其暂存.

标签:c,net,libgit2sharp
来源: https://codeday.me/bug/20190623/1271450.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有