如何使用Cake执行git clone操作

时间:2016-12-08 20:13:41

标签: c# git cakebuild

是否可以使用Cake脚本克隆git存储库?如果是这样,怎么办呢?

1 个答案:

答案 0 :(得分:5)

可以使用Cake.Git Addin执行大量git操作。通常,您可以找到有关如何使用此插件here提供的别名的示例,但是,这些示例尚不存在。

在此期间,以下显示了如何使用四个GitClone别名的示例。

注意:就本回答而言,我们将在GitHub上使用Cake Git repository

GitClone(string, ​DirectoryPath)

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake");
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​GitCloneSettings)​

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    GitClone("https://github.com/cake-build/cake.git", "c:/temp/cake", 
        new GitCloneSettings{ BranchName = "main" });
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​string, ​string)​

注意:此别名似乎无法创建输出目录。因此,EnsureDirectoryExists别名用于确保它存在。

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    EnsureDirectoryExists("c:/temp/cake");
    GitClone("https://github.com/cake-build/cake.git", 
        "c:/temp/cake", 
        "username", 
        "password");
});

RunTarget("Git-Clone");

GitClone(string, ​DirectoryPath, ​string, ​string, ​GitCloneSettings)​

注意:此别名似乎无法创建输出目录。因此,EnsureDirectoryExists别名用于确保它存在。

#addin nuget:?package=Cake.Git

Task("Git-Clone")
.Does(() =>
{
    EnsureDirectoryExists("c:/temp/cake");
    GitClone("https://github.com/cake-build/cake.git", 
        "c:/temp/cake", 
        "username", 
        "password", 
        new GitCloneSettings{ BranchName = "main" });
});

RunTarget("Git-Clone");