当前位置: 首页 > web >正文

【git】获取特定分支和所有分支

1 特定分支

1.1 克隆指定分支(默认只下载该分支)

git clone -b <分支名> --single-branch <仓库URL>

示例(克隆 某一个 分支):

git clone -b xxxxxx --single-branch xxxxxxx
  • -b :指定分支

  • --single-branch:仅克隆该分支(节省时间空间)

1.2 克隆后切换到另一个分支(如果已克隆仓库)

如果已经克隆了仓库,想切换到其他分支:

git fetch origin <分支名>  # 先获取分支信息
git checkout <分支名>     # 切换到该分支

示例(切换到 lesson-2):

git fetch origin lesson-2
git checkout lesson-2

2 所有分支

git clone xxx
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

举一反三:

比如我有一个需求:下载博主的教学源码,就用到了git获取分支的知识,具体需求是在克隆每一个分支的同时想对每一个分支都创建一个文件夹,又不会bash命令,就可以在ai的帮助下

 成功编写一个sh文件完成我的需求:

#!/bin/bash
set -e  # 任何命令失败则退出
set -x  # 打印执行的命令(调试模式)# 仓库配置
REPO_URL="https://github.com/iamshaunjp/bootstrap-5-tutorial.git"
REPO_NAME="bootstrap-5-tutorial"
BRANCHES_DIR="../branches"# 1. 克隆仓库(仅默认分支)
echo "步骤1/4: 克隆仓库..."
if [ -d "$REPO_NAME" ]; thenecho "错误:目录 $REPO_NAME 已存在,请删除或重命名!"exit 1
fi
git clone "$REPO_URL" "$REPO_NAME" || {echo "克隆失败!请检查网络或仓库URL。"exit 1
}
cd "$REPO_NAME" || exit 1# 2. 获取所有远程分支
echo "步骤2/4: 获取所有远程分支..."
git fetch --all || {echo "获取分支失败!"exit 1
}# 3. 遍历每个远程分支并导出文件
echo "步骤3/4: 导出各分支到 $BRANCHES_DIR/..."
mkdir -p "$BRANCHES_DIR" || exit 1git branch -r | grep -v '\->' | while read -r remote; dobranch_name="${remote#origin/}"target_dir="$BRANCHES_DIR/$branch_name"echo "----------------------------------------"echo "正在处理分支: $branch_name"echo "目标目录: $(pwd)/$target_dir"# 创建分支目录mkdir -p "$target_dir" || {echo "创建目录失败: $target_dir"exit 1}# 切换到分支git checkout "$branch_name" 2>&1 | tee -a ../branch_log.txt || {echo "切换分支失败: $branch_name"exit 1}# 复制文件(排除.git)echo "复制文件中..."cp -r ./* "$target_dir/" 2>&1 | tee -a ../copy_log.txt || {echo "复制文件失败: $branch_name"exit 1}echo "完成: $branch_name -> $target_dir"echo "文件数量: $(ls -1 "$target_dir" | wc -l)"
done# 4. 最终检查
echo "步骤4/4: 验证导出结果..."
echo "----------------------------------------"
echo "所有分支已导出到: $(pwd)/$BRANCHES_DIR"
echo "分支列表:"
ls -1 "$BRANCHES_DIR"
echo "----------------------------------------"
echo "导出完成!"

http://www.xdnf.cn/news/3496.html

相关文章:

  • 【东枫科技】AMD / Xilinx Alveo™ V80计算加速器卡
  • 文章五《卷积神经网络(CNN)与图像处理》
  • Java大师成长计划之第10天:锁与原子操作
  • AimRT从入门到精通 - 04RPC客户端和服务器
  • 沥青路面裂缝的目标检测与图像分类任务
  • 【Hive入门】Hive性能调优:小文件问题与动态分区合并策略详解
  • React pros比较机制
  • 模拟开发授权平台
  • 【嵌入式Linux】基于ARM-Linux的zero2平台的智慧楼宇管理系统项目
  • 中小企业MES系统数据库设计
  • Spring MVC @RequestHeader 注解怎么用?
  • VMware提供的三种网络连接模式
  • Android WebView加载h5打开麦克风与摄像头的权限问题
  • Haskell Drracket OCaml Prolog 逻辑式编程函数式编程代写代做
  • 从 Eclipse Papyrus / XText 转向.NET —— SCADE MBD技术的演化
  • aab转apk
  • DeepSeek玄学指令大全
  • 【电脑维修】MERCURY水星无线网卡导致 Windows 网络适配器无法连接的一种情况
  • T575729 正经数组
  • IDA pro接入千问大模型
  • Java关键字解析
  • 【dify—7】文本生成应用实战——学员周报生成
  • 「Mac畅玩AIGC与多模态12」开发篇08 - 使用自定义汇率查询插件开发智能体应用
  • 数字智慧方案6146丨智慧学院智能化项目规划设计方案(45页PPT)(文末有下载方式)
  • QT6 源(66)篇三:阅读与注释类 QAbstractSpinBox ,这是螺旋框的基类,附上源码
  • 销售预测业务优化设计方案汇报P99(99页PPT)(文末有下载方式)
  • C++使用accumulate函数对数组进行快速求和
  • C# System.Text.Json终极指南(十):从基础到高性能序列化实战
  • 论云原生架构及其应用
  • LTspice