是否可以从CakeBuild创建和签出新的git分支?

时间:2018-03-12 04:51:35

标签: c# git libgit2sharp cakebuild

我的问题是两部分问题

1)我需要通过蛋糕构建来创建和签出新的git分支。在git中,这与我们完全一样

git branch Foo
git checkout Foo

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

2)现有的GitCheckout方法抛出异常。这个仓库有一个现有的ReleaseRC分支,但仍会引发异常。我在这里缺少什么?

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

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

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

Error

1 个答案:

答案 0 :(得分:2)

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

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

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

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

例如:

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

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