从Bitbucket存储库powershell

时间:2016-07-26 08:50:52

标签: powershell bitbucket

大家好我编写了一个PowerShell脚本,使用PowerShell脚本将存储库克隆到我的本地驱动器。

Function CloneBitBucket
{
 [CmdletBinding()]
 param (
    [Parameter(Mandatory)]
    [string] $sourceLocation,
    [Parameter(Mandatory)]
    [string] $localPath 
)
 git clone $sourceLocation $localPath
}
CloneBitBucket

这是下载所有可用的项目,但我想只克隆一个特定的项目,而不是下载所有

1 个答案:

答案 0 :(得分:1)

每个存储库的项目

听起来你可能在一个存储库中有多个项目。

当每个项目都有自己的存储库时,Git和Mercurial都会更好地工作,而且对克隆一个子目录也没有很好的支持。请考虑以下答案。

  • Regarding Git

      

    这个想法不是将所有存储在一个巨大的git仓库中,而是构建一个小型仓库作为主要项目,它将引用其他仓库的正确提交,每个仓库代表一个项目或共同它自己的组成部分。

  • Regarding Mercurial

      

    你应该创建多个存储库,每个独立项目一个作为开始。

         

    Mercurial提交是一个存储库范围的级别,您不能只签出一个子目录。这与Subversion不同,它允许您通过仅提交一些文件来进行一致的提交,但是它也允许您只签出一个子目录。

我建议您将多项目存储库拆分为多个单项目存储库。它会在以后为您节省很多麻烦。

使用Git稀疏结账

然而, 可能会使用名为sparse checkout的内容检查某些使用Git的子目录。请注意,使用此方法您的克隆仍将包含整个目录树。工作副本中显示的文件有哪些变化。

稀疏结账有点痛苦,而且我认为在单个存储库中处理多个项目并不是一个好方法,但是如果你想使用它,那就很好了。

使用Git

克隆单个分支

如果您希望仅使用Git克隆单个分支,则可以使用--single-branch--branch选项git clone

git clone --single-branch --branch some-branch $sourceLocation $localPath

我怀疑可以更新您的PowerShell功能以支持第三个$branchName参数。