我尝试通过LibGitSharp检出远程分支。 在git本身中,您使用以下命令:
git fetch origin
git checkout -b test origin/test
在较新的版本中,只需要:
git fetch
git checkout test
所以我尝试了这段代码:
repo.Fetch("origin");
repo.Checkout("origin/" + Name);
Fetch和Checkout运行正常,但没有Remote分支的副本。
是否有人有其他方法来检出远程分支呢?
我的替代方案是在仓库中创建该分支并将其推送到远程:
Branch newBranch = repo.Branches.Add(Name, repo.Branches["master"].Commits.First());
repo.Network.Push(newBranch);
但我遇到了这个异常:
您正在尝试推送的分支'Test1'("refs/heads/Test1")没有跟踪上游分支。
也许我可以将该分支设置为上游分支,但我不知道如何操作。
编辑:我没有正确解释清楚,在我的程序中,我尝试更好地描述Fetch和Checkout的作用。Fetch命令已正确执行。现在,如果我使用checkout命令,它应该创建一个远程分支的本地分支,但它没有这样做。我还尝试过repo.Checkout(name),没有使用"origin/",但它会抛出一个异常:No valid git object identified by '...' exists in the repository.