linux中使用git获取所有分支,并获取所有分支中的logs然后输出保存为diff文件

c 复制代码
#!/bin/bash

# 创建目录用于存储每个分支的文件
mkdir branches

# 获取所有分支
branches=$(git branch -a)

# 遍历所有分支
for branch in $branches; do
  # 在每个分支上切换
  git checkout $branch
  
  # 使用git log --oneline将日志附加到all.log文件
  git log --oneline > all.log

  # 获取分支名
  branch_name=$(echo $branch | awk -F'/' '{print $NF}')

  # 创建分支文件夹
  mkdir "branches/$branch_name"

  # 遍历all.log文件的所有日志
  while read -r line; do
    # 解析每一行的id和name
    id=$(echo $line | awk '{print $1}')
    name=$(echo $line | awk '{print $2}')

    # 在分支文件夹下创建以name为文件名的.diff文件
    touch "branches/$branch_name/$name.diff"

    # 在.diff文件中写入相应的内容,这里只是一个示例
    echo "Changes for $name (ID: $id)" >> "branches/$branch_name/$name.diff"
    git diff $id >> "branches/$branch_name/$name.diff"
  done < all.log
done
相关推荐
w***Q3501 小时前
Git工作流自动化
运维·git·自动化
xu_yule3 小时前
Linux_12(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
linux·运维·服务器
虾..3 小时前
Linux 环境变量&&进程优先级
linux·运维·服务器
i***t9194 小时前
Linux下MySQL的简单使用
linux·mysql·adb
偶像你挑的噻4 小时前
11-Linux驱动开发-I2C子系统–mpu6050简单数据透传驱动
linux·驱动开发·stm32·嵌入式硬件
稚辉君.MCA_P8_Java4 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法
数据库学啊5 小时前
团队小希望运维简单,时序数据库选型有什么推荐?
运维·数据库·时序数据库
舒一笑5 小时前
GitPulse:让代码的故事自己讲述
git·程序员·intellij idea
霍格沃兹软件测试开发6 小时前
Playwright MCP浏览器自动化指南:让AI精准理解你的命令
运维·人工智能·自动化
郝学胜-神的一滴6 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发