c# - 是否可以从 CakeBuild 创建和 checkout 新的 git 分支?

标签 c# git libgit2sharp cakebuild

我的问题是两部分问题

1) 我需要通过 cake build 创建并 check out 一个新的 git 分支。在 git 中,这与我们所做的完全一样

git branch Foo
git checkout Foo

Cake.Git 插件提供了当前分支名称的信息,但我怀疑它是否具有分支和 checkout 功能。

2) 现有的GitCheckout 方法抛出异常。这个 repo 有一个现有的 ReleaseRC 分支,它仍然抛出异常。我在这里缺少什么?

Task("Checkout")
    .Does(() =>
{
    var repositoryPath = "../../.foo";

    Information(GitBranchCurrent(repositoryPath).FriendlyName); //Prints 'master'

    GitCheckout(repositoryPath, "ReleaseRC", new FilePath[] {}); //Throws error.
});

Error

最佳答案

不,目前无法通过 Cake.Git 插件实现。但是,将此功能添加到 Cake.Git 插件会出现问题,您可以在此处找到该插件:

https://github.com/cake-contrib/Cake_Git/issues/52

可以通过直接调用 git 可执行文件、使用 StartProcess 别名并提供所需参数来完成这项工作。

https://cakebuild.net/api/Cake.Common/ProcessAliases/81E648CC

例如:

var exitCodeWithArgument = StartProcess("git", new ProcessSettings{ Arguments = "branch foo" });

更新:从 Cake.Git 插件的 0.18.0 版开始,现在应该可以使用新的 GitCreateBranch 别名来执行此操作。

关于c# - 是否可以从 CakeBuild 创建和 checkout 新的 git 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49228331/

相关文章:

c# - Process.Start 找不到现有文件

c# - Console.WriteLine 未显示在“输出”窗口中

c# - C# 中是否可能进行部分泛型类型推断?

git - 对于可能在不同服务器上的实例之间存在细微配置差异的 Web 应用程序,什么是可接受的生产部署

git - 错误: commit is a merge but no -m option was given

Git - 显示 HEAD 和初始(第一个)版本之间的文件差异

c# - libgit2sharp 删除远程分支

c# - “agsXMPP.MessageGrabber”是 'type',但使用方式类似于 'variable'

libgit2sharp - 等同于 git difftool -y 和 libgit2sharp?

c# - Git 仓库内部格式解释