2
어떻게 libgit2sharp에서 고아 지점을 만드나요?libgit2sharp의 고아 지점
내가 찾은 모든 것은 커밋을 가리키는 분기를 만드는 메소드입니다.
나는 명령과 유사한 효과를 찾고 있어요 :
git checkout --orphan BRANCH_NAME
어떻게 libgit2sharp에서 고아 지점을 만드나요?libgit2sharp의 고아 지점
내가 찾은 모든 것은 커밋을 가리키는 분기를 만드는 메소드입니다.
나는 명령과 유사한 효과를 찾고 있어요 :
git checkout --orphan BRANCH_NAME
git checkout --orphan BRANCH_NAME
실제로 작업 디렉토리 나 인덱스를 변경하지 않고 태어나지 않은 지점 BRANCH_NAME
에 HEAD
이동합니다.
HEAD
참조 대상을 repo.Refs.UpdateTarget()
메서드로 업데이트하면 LibGit2Sharp와 비슷한 작업을 수행 할 수 있습니다.
다음 시험이
[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", "[email protected]", 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);
}
}
보여줍니다