我正在使用git2-rs在Rust应用程序中实现一些标准git功能。我一直在阅读git的内部知识,并且了解到,在较高的层次上,“ git pull”是“ git fetch”,然后是“ git merge”,但在理解如何使其与git2-rs结合使用方面仍然有困难。关于问题here的讨论中,人们同意git2-rs“ git pull”示例会很好,但是从未创建过。在该讨论中有一个进行硬重置的示例,但我想避免覆盖本地更改(因此合并)。我也无法在其他任何使用git2-rs的代码库中找到示例。
“ git reset”示例here显示了我认为如何在获取后获取OID,但是merge函数需要一个AnnotatedCommit,而且我不确定如何在两者之间进行转换,或者即使这是正确的方向。
答案 0 :(得分:0)
尝试类似的东西:
\033
使用
let our_commit = find_last_commit()?;
let reference = repo.find_reference("FETCH_HEAD")?;
let their_commit = reference.peel_to_commit()?;
let _index = repo
.merge_commits(&our_commit, &their_commit, Some(&MergeOptions::new()))?;