gpt4 book ai didi

git - LibGit2Sharp : Checkout Remote Branch

转载 作者:太空狗 更新时间:2023-10-29 13:16:17 26 4
gpt4 key购买 nike

我尝试通过 LibGitSharp check out Remotebranch。在 git 本身,你使用这个命令:

git fetch origin
git checkout -b test origin/test

在较新的版本中,它只是:

git fetch
git checkout test

所以我尝试了这段代码:

repo.Fetch("origin");
repo.Checkout("origin/" + Name);

Fetch 和 Checkout 运行没有任何问题,但没有 Remotebranch 的副本。

有谁知道用其他方法检查 Remote 吗?

我的替代方案是在存储库中创建分支并将其推送到远程:

Branch newBranch = repo.Branches.Add(Name, repo.Branches["master"].Commits.First());
repo.Network.Push(newBranch);

但是我得到了这个异常:

The branch 'Test1' ("refs/heads/Test1") that you are trying to push does not track an upstream branch.

也许我可以将分支设置为上游分支,但我不知道如何。

编辑: 我没有正确解释它,所以我尝试更好地描述它在我的程序中的 Fetch 和 Checkout 功能。 Fetch 命令正确执行。现在,如果我使用 checkout 命令,它应该创建 Remotebranch 的本地分支,但事实并非如此。我也试过 repo.Checkout(name),没有 "origin/",但它抛出了一个异常:No valid git object identified by '...' exists in the repository.

最佳答案

如果我正确理解您的问题,您愿意创建一个本地分支,该分支将被配置为跟踪获取的远程跟踪分支。

换句话说,一旦您获取了一个存储库,您的引用就会包含远程跟踪分支(例如。origin/theBranch)并且您想要创建一个具有相同名称的本地分支(例如。 theBranch).

下面的例子应该演示如何做到这一点

const string localBranchName = "theBranch";

// The local branch doesn't exist yet
Assert.Null(repo.Branches[localBranchName]);

// Let's get a reference on the remote tracking branch...
const string trackedBranchName = "origin/theBranch";
Branch trackedBranch = repo.Branches[trackedBranchName];

// ...and create a local branch pointing at the same Commit
Branch branch = repo.CreateBranch(localBranchName, trackedBranch.Tip);

// The local branch is not configured to track anything
Assert.False(branch.IsTracking);

// So, let's configure the local branch to track the remote one.
Branch updatedBranch = repo.Branches.Update(branch,
b => b.TrackedBranch = trackedBranch.CanonicalName);

// Bam! It's done.
Assert.True(updatedBranch.IsTracking);
Assert.Equal(trackedBranchName, updatedBranch.TrackedBranch.Name);

注意:更多示例可以在 BranchFixture.cs中找到 测试套件。

关于git - LibGit2Sharp : Checkout Remote Branch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23337677/

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