【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.mzph.cn/news/903943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LWIP带freeRTOS系统移植笔记

以正点原子学习视频为基础的文章 LWIP带freeRTOS系统移植 准备资料/工程 1、lwIP例程1 lwIP裸机移植 工程 &#xff0c; 作为基础工程 改名为LWIP_freeRTOS_yizhi工程 2、lwIP例程6 lwIP_FreeRTOS移植 工程 3、freeRTO源码 打开https://www.freertos.org/网址下载…

组网技术知识点

1.port-isloate enable命令用于实现两个接口之间的二层数据隔离&#xff0c;三层数据互通。 2.交换机最多支持4096个VLAN&#xff0c;编号为1-4094 3.display bfd session all&#xff1a;查看BFD会话状态是否UP 4.RJ45通过双绞线连接以太网&#xff1b; AUI端口&#xff1…

Linux系统:进程程序替换以及相关exec接口

本节重点 理解进程替换的相关概念与原理掌握相关程序替换接口程序替换与进程创建的区别程序替换的注意事项 一、概念与原理 进程程序替换是操作系统中实现多任务和资源复用的关键机制&#xff0c;允许进程在运行时动态加载并执行新程序。 1.1 定义 进程程序替换是指用新程…

从此,K8S入门0门槛!

前言 当你想要入门K8S的时候&#xff0c;往往会被各种概念搞的晕乎乎的&#xff0c;什么API Server&#xff0c;Scheduler&#xff0c;Controller manager&#xff0c;Etcd&#xff0c;Pod&#xff0c;Kubelet&#xff0c;kube-proxy&#xff0c;deployment…… 哪怕你使用了…

[Python开发] 如何用 VSCode 编写和管理 Python 项目(从 PyCharm 转向)

在 Python 开发领域,PyCharm 一直是广受欢迎的 IDE,但其远程开发功能(如远程 SSH 调试)仅在付费版中提供。为了适应服务器部署需求,很多开发者开始将目光转向更加轻量、灵活且免费扩展能力强的 VSCode。本篇文章将详细介绍,从 PyCharm 转向 VSCode 后,如何高效搭建和管理…

处方流转平台权限控制模块设计(基于RBAC模型)

这是基于笔者的一些经验设计并加以完善的方案&#xff0c;仅供参考。 处方流转平台权限控制模块设计&#xff08;基于RBAC模型&#xff09; 1. 需求分析 处方流转平台需要严格的权限控制&#xff0c;确保&#xff1a; 患者隐私数据保护处方开具、审核、调配、发药等流程的合…

基于BM1684X+RK3588的智能工业视觉边缘计算盒子解决方案

智能工业视觉边缘计算终端技术方案书‌ ‌1. 产品概述‌ 1.1 产品定位 面向工业自动化场景的高性能AI视觉处理设备集成BM1684X&#xff08;8TOPS INT8&#xff09;AI加速芯片 RK3588&#xff08;6TOPS NPU&#xff09;异构计算支持工业级多相机接入、实时缺陷检测、高精度定…

软件工程中的 QFD

: 软件工程中的 QFD 在软件工程领域,随着市场竞争的加剧和用户需求的日益复杂,如何有效地将用户需求转化为软件产品,成为软件开发团队面临的重要挑战。而质量功能部署(Quality Function Deployment,QFD)作为一种强大的工具,为这一问题提供了有效的解决方案。 一、QF…

Vue2基础速成

一、准备工作 首先下载vue2的JavaScript库&#xff0c;并且命名为vue.min.js 下载链接&#xff1a;https://cdn.jsdelivr.net/npm/vue2&#xff08;若链接失效可去vue官网寻找&#xff09; CTRLS即可下载保存 文件目录结构 二、使用操作原生DOM与使用VUE操作DOM的便捷性比较…

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(14):かもしれません (~た・~ない)ほうがいいです

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;1&#xff14;&#xff09;&#xff1a;かもしれません &&#xff08;&#xff5e;た・&#xff5e;ない&#xff09;ほうがいいです 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师…

传统银行服务和 区块链支付无缝融合的一种解决方案

Dragonfly Capital 的合伙人 Alex Pack 曾表示:“DeFi 的目标是重构全球银行体系,并打造开放且无须许可的经营环境。”在 DeFi 的金融世界中,加密资产架构在区块链上,通过各个协议实现资产之间的高效转移和价值的实时流通,如 Metamask 钱包的自托管,Uniswap 的资产交易,…

基于深度学习的毒蘑菇检测

文章目录 任务介绍数据概览数据处理数据读取与拼接字符数据转化标签数据映射数据集划分数据标准化 模型构建与训练模型构建数据批处理模型训练 文件提交结果附录 任务介绍 本次任务为毒蘑菇的二元分类&#xff0c;任务本身并不复杂&#xff0c;适合初学者&#xff0c;主要亮点…

时间给了我们什么?

时间给了我们什么&#xff1f; ​春秋易逝&#xff0c;青春难留&#xff0c;转瞬之间已过半百。 ​过往中&#xff0c;有得有失&#xff0c;这就是人生。 ​一日三餐四季&#xff0c;日起日落里&#xff0c;成就了昨天、今天和明天&#xff0c;在历史长河中&#xff0c;皆是…

软件工程国考

软件工程-同等学力计算机综合真题及答案 &#xff08;2004-2014、2017-2024&#xff09; 2004 年软工 第三部分 软件工程 &#xff08;共 30 分&#xff09; 一、单项选择题&#xff08;每小题 1 分&#xff0c;共 5 分&#xff09; 软件可用性是指&#xff08; &#xff09…

数据结构*栈

栈 什么是栈 这里的栈与我们之前常说的栈是不同的。之前我们说的栈是内存栈&#xff0c;它是JVM内存的一部分&#xff0c;用于存储局部变量、方法调用信息等。每个线程都有自己独立的栈空间&#xff0c;当线程启动时&#xff0c;栈就会被创建&#xff1b;线程结束&#xff0c…

IntelliJ IDEA 保姆级使用教程

文章目录 一、创建项目二、创建模块三、创建包四、创建类五、编写代码六、运行代码注意 七、IDEA 常见设置1、主题2、字体3、背景色 八、IDEA 常用快捷键九、IDEA 常见操作9.1、类操作9.1.1、删除类文件9.1.2、修改类名称注意 9.2、模块操作9.2.1、修改模块名快速查看 9.2.2、导…

HTTP 快速解析

一、HTTP请求结构 HTTP请求和响应报文由以下部分组成&#xff08;以请求报文为例&#xff09;&#xff1a; 请求报文结构&#xff1a; 请求行&#xff1a;包含HTTP方法&#xff08;如GET/POST&#xff09;、请求URL和协议版本&#xff08;如HTTP/1.1&#xff0c;HTTP/2.0&…

【AI学习】李宏毅新课《DeepSeek-R1 这类大语言模型是如何进行「深度思考」(Reasoning)的?》的部分纪要

针对推理模型&#xff0c;主要讲了四种方法&#xff0c;两种不需要训练模型&#xff0c;两种需要。 对于reason和inference&#xff0c;这两个词有不同的含义&#xff01; 推理时计算不是新鲜事&#xff0c;AlphaGo就是如此。 这张图片说明了将训练和推理时计算综合考虑的关系&…

Kotlin Flow流

一 Kotlin Flow 中的 stateIn 和 shareIn 一、简单比喻理解 想象一个水龙头&#xff08;数据源&#xff09;和几个水杯&#xff08;数据接收者&#xff09;&#xff1a; 普通 Flow&#xff08;冷流&#xff09;&#xff1a;每个水杯来接水时&#xff0c;都要重新打开水龙头从…

【嵌入式Linux】基于ARM-Linux的zero2平台的智慧楼宇管理系统项目

目录 1. 需求及项目准备&#xff08;此项目对于虚拟机和香橙派的配置基于上一个垃圾分类项目&#xff0c;如初次开发&#xff0c;两个平台的环境变量&#xff0c;阿里云接入&#xff0c;摄像头配置可参考垃圾分类项目&#xff09;1.1 系统框图1.2 硬件接线1.3 语音模块配置1.4 …