我正在尝试在 git2go 中复制以下命令的结果:
git merge -X theirs --no-ff -m "Commit msg" <commit>
我能够使用 成功获取上游远程remote.Fetch(nil, nil, ""),但我无法进行实际合并。这是我用于合并的代码:
// get the upstream ref's annotated commit to merge in
head, _ := repo.Head()
upstream, _ := head.Branch().Upstream()
annotatedCommit, _ := repo.AnnotatedCommitFromRef(upstream)
// prepare merge and checkout options
mergeOpts, _ := git.DefaultMergeOptions()
mergeOpts.FileFavor = git.MergeFileFavorTheirs
checkoutOpts := git.CheckoutOpts{
Strategy: git.CheckoutUseTheirs,
}
// do the merge
err := repo.Merge([]*git.AnnotatedCommit{annotatedCommit}, &mergeOpts, &checkoutOpts)
// no error here
我知道在此之后我需要检查索引是否有任何冲突,并实际与两个父母一起提交,但是我现在被困在这里,因为他们Merge()似乎没有做任何事情(没有合并,没有结帐)。
尚方宝剑之说
相关分类