【发布时间】:2016-02-22 03:02:52
【问题描述】:
使用 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 方法。
除了删除文件或重命名文件之外,还有其他方法可以解决代码冲突吗?有自动解析功能吗?
感谢您的帮助!
【问题讨论】:
-
合并冲突要么必须手动解决,要么您需要使用
theirs或our样式合并检出覆盖文件。这与您必须通过 CLI 使用git merge xxxx执行的操作相同 -
@RobertN 感谢您的重播。这是否意味着我必须找到一个冲突文件,读取文件的整个内容,以某种方式找到冲突的部分,用他们的或我们的替换它,将内容写入磁盘,然后再次调用 Merge?
-
其他人写了一个答案,但是关于您的评论,一旦您更正/修复了冲突的文件,您将比暂存并提交它们,因为您的本地存储库仍处于状态'合并'
-
@RobertN 好的,我会试试的。谢谢!
标签: c# .net libgit2sharp