大家好我编写了一个PowerShell脚本,使用PowerShell脚本将存储库克隆到我的本地驱动器。
Function CloneBitBucket
{
[CmdletBinding()]
param (
[Parameter(Mandatory)]
[string] $sourceLocation,
[Parameter(Mandatory)]
[string] $localPath
)
git clone $sourceLocation $localPath
}
CloneBitBucket
这是下载所有可用的项目,但我想只克隆一个特定的项目,而不是下载所有
答案 0 :(得分:1)
听起来你可能在一个存储库中有多个项目。
当每个项目都有自己的存储库时,Git和Mercurial都会更好地工作,而且对克隆一个子目录也没有很好的支持。请考虑以下答案。
这个想法不是将所有存储在一个巨大的git仓库中,而是构建一个小型仓库作为主要项目,它将引用其他仓库的正确提交,每个仓库代表一个项目或共同它自己的组成部分。
你应该创建多个存储库,每个独立项目一个作为开始。
Mercurial提交是一个存储库范围的级别,您不能只签出一个子目录。这与Subversion不同,它允许您通过仅提交一些文件来进行一致的提交,但是它也允许您只签出一个子目录。
我建议您将多项目存储库拆分为多个单项目存储库。它会在以后为您节省很多麻烦。
然而, 可能会使用名为sparse checkout的内容检查某些使用Git的子目录。请注意,使用此方法您的克隆仍将包含整个目录树。工作副本中显示的文件有哪些变化。
稀疏结账有点痛苦,而且我认为在单个存储库中处理多个项目并不是一个好方法,但是如果你想使用它,那就很好了。
如果您希望仅使用Git克隆单个分支,则可以使用--single-branch
和--branch
选项git clone
:
git clone --single-branch --branch some-branch $sourceLocation $localPath
我怀疑可以更新您的PowerShell功能以支持第三个$branchName
参数。