gpt4 book ai didi

version-control - libgit2sharp 中的孤立分支

转载 作者:行者123 更新时间:2023-12-03 01:21:26 25 4
gpt4 key购买 nike

如何在 libgit2sharp 中创建孤立分支?

我能找到的只是创建指向提交的分支的方法。
我正在寻找类似于命令的效果:

git checkout --orphan BRANCH_NAME  

最佳答案

git checkout --orphan BRANCH_NAME 实际上将 HEAD 移动到未出生的分支 BRANCH_NAME,而不更改工作目录或索引。

您可以使用 LibGit2Sharp 执行类似的操作,方法是使用 repo.Refs.UpdateTarget() 方法更新 HEAD 引用的目标。

以下测试证明了这一点

[Fact]
public void CanCreateAnUnbornBranch()
{
string path = CloneStandardTestRepo();
using (var repo = new Repository(path))
{
// No branch named orphan
Assert.Null(repo.Branches["orphan"]);

// HEAD doesn't point to an unborn branch
Assert.False(repo.Info.IsHeadUnborn);

// Let's move the HEAD to this branch to be created
repo.Refs.UpdateTarget("HEAD", "refs/heads/orphan");
Assert.True(repo.Info.IsHeadUnborn);

// The branch still doesn't exist
Assert.Null(repo.Branches["orphan"]);

// Create a commit against HEAD
var signature = new Signature("Me", "me@there.com", DateTimeOffset.Now);
Commit c = repo.Commit("New initial root commit", signature, signature);

// Ensure this commit has no parent
Assert.Equal(0, c.Parents.Count());

// The branch now exists...
Branch orphan = repo.Branches["orphan"];
Assert.NotNull(orphan);

// ...and points to that newly created commit
Assert.Equal(c, orphan.Tip);
}
}

关于version-control - libgit2sharp 中的孤立分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19274783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com