也许之前问过,但我找不到明确的答案。当我需要用gitlib2sharp列出repo的分支时,我真的首先需要克隆到本地仓库吗?有什么意义呢?我只想克隆一个特定的分支,就像你使用git clone https://bla/repo.git -b branch1
一样现在我首先需要进行本地结账,然后获取分支机构并从那里进行第二轮检查。
我在这里遗漏了什么(希望我这么做)。
TIA答案!
Grtz, 罗纳德
更新(长期评论): 好的,所以这是用例。公司提供ssrs报告,我们需要通过TAP进行部署。所以我的想法是通过Git做到这一点。对于每次更改,让他们在此分支中创建分支,上传/更改/等。并迭代此分支中的更改,直到一切正常。在迭代中,他们应该能够(重新)部署自己至少T.在最后阶段,我们将brnanch合并到master并在P中重新部署master。在Github中,你可以完全点击'这个流程,但当然我想要自动化这个并且最好还是按下按钮,所以他们不需要我这样做。那么这里最好的程序化选择是什么?当他们创建一个分支并开始在T中部署时,我应该创建(克隆)repo,将我的本地repo指向特定分支,获取文件(.sql和.rdl文件)并执行/上传这些文件吗?我不知道当你克隆一个repo时,你用它克隆所有的分支。到目前为止,谢谢!
答案 0 :(得分:1)
如果您想使用libgtk2sharp执行 git clone https://bla/repo.git -b branch1 之类的操作,请尝试以下方法:
var exampleRepositoryUrl = "https://github.com/npgsql/npgsql.git";
var exampleDestinationFolder = "branch-hotfix-3.0.8";
var exampleBranchName = "hotfix/3.0.8";
var repositoryClonedPath = Repository.Clone(exampleRepositoryUrl,
exampleDestinationFolder,
new CloneOptions()
{
BranchName = exampleBranchName
});
using (var clonedRepo = new Repository(repositoryClonedPath))
{
// ...
}
要列出远程分支的名称而不克隆仓库,您可以使用以下内容:
var branches = Repository.ListRemoteReferences(exampleRepositoryUrl)
.Where(elem => elem.IsLocalBranch)
.Select(elem => elem.CanonicalName
.Replace("refs/heads/", ""));