You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Azure DevOps中Git仓库的文件夹克隆至不同本地目录?

实现Azure DevOps Git仓库文件夹分路径存放的方案

Git和你之前用的TFVC(TFS版本控制)核心逻辑不同:Git是基于仓库级别的分布式版本控制,没有TFVC那种直接映射单个服务器文件夹到本地任意路径的工作区功能,但可以通过以下几种方法实现你的需求:

方法1:稀疏检出(Sparse Checkout)—— 推荐方案

这是Git原生支持的功能,可仅克隆仓库中指定的文件夹,完美匹配你的需求:

针对folder1(放到K:/x/p/q/,非空目录):

  1. 打开命令提示符/终端,进入K:/x/p/q/目录
  2. 初始化本地Git仓库:
    git init
    
  3. 关联Azure DevOps远程仓库:
    git remote add origin <你的Azure DevOps Git仓库URL>
    
  4. 启用稀疏检出模式:
    git config core.sparseCheckout true
    
  5. 指定仅拉取folder1文件夹:
    echo "folder1/" >> .git/info/sparse-checkout
    
  6. 拉取远程分支的代码(替换<你的分支名>为实际分支,比如main或master):
    git pull origin <你的分支名>
    

执行完成后,K:/x/p/q/下会生成folder1,且该目录保留原有文件,Git仅管理folder1的版本。

针对folder2(放到C:/x/p/q/):

重复上述步骤,仅需将目录改为C:/x/p/q/,并把第5步的命令改为:

echo "folder2/" >> .git/info/sparse-checkout

Visual Studio 2019中使用:

VS2019的Git UI暂不支持直接配置稀疏检出,需先通过上述命令行完成设置,之后在VS中选择“打开本地仓库”,分别打开K:/x/p/q/和C:/x/p/q/,即可正常进行提交、拉取、推送等Git操作。

方法2:Git子模块(Submodules)

如果需要更灵活的版本控制(比如两个文件夹需独立提交),可使用子模块:

  1. 在K:/x/p/q/初始化Git仓库,添加原仓库的folder1作为子模块:
    git init
    git submodule add <你的Azure DevOps Git仓库URL> folder1
    cd folder1
    git checkout <你的分支名>
    
  2. 在C:/x/p/q/重复上述操作,将子模块路径改为folder2。

子模块的每个文件夹会有独立的Git仓库,适合需要单独管理版本的场景,但日常操作(如拉取、更新)需额外执行子模块命令,复杂度略高。

方法3:全克隆后迁移+远程关联

若已克隆整个仓库到本地,可手动迁移文件夹并关联远程:

  1. 将克隆的仓库中folder1移动到K:/x/p/q/,folder2移动到C:/x/p/q/
  2. 分别进入两个目标目录,执行方法1中的步骤2-6(初始化仓库、关联远程、启用稀疏检出、拉取代码),完成后即可正常同步版本。

内容的提问来源于stack exchange,提问作者No Name

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 17:40:17