用脚本快速提取补丁文件

目录

开发过程中有些情况下需要对不同环境中的文件进行替换,就要从本地找出变更文件,同时找出的变更文件还要和服务器上的目录保持一致,如果只变更了个别文件还可以手动处理,但是如果变更文件数很多的时候,就需要其他方式来处理。如何快速的从找出开发环境中git仓库中的变更文件可以参考以下方式实现:

windows

  1. 首先,确保您已经在Git仓库的根目录下,并且已经切换到包含所需变更的分支或提交。
  2. 创建一个新的目标文件夹,用于存放补丁文件。可以选择在原文件夹的同级目录下创建一个新的文件夹。
  3. 执行以下命令来生成补丁文件:
bash 复制代码
git diff --name-only > changes.txt

这将生成一个包含所有变更文件路径的文本文件 changes.txt。该文件中每一行都是一个变更的文件路径。

  1. 创建一个脚本(例如 create_patch.ps1),代码如下:
powershell 复制代码
# 指定源文件夹和目标文件夹
$sourceFolder = "C:\path\to\source\folder"
$targetFolder = "C:\path\to\target\folder"

# 读取变更文件列表
Get-Content -Path "C:\path\to\changes.txt" | ForEach-Object {
    # 获取文件所在的相对路径
    $relativePath = Split-Path $_ -Parent

    # 创建目标文件夹的相应目录结构
    $targetPath = Join-Path $targetFolder $relativePath
    New-Item -ItemType Directory -Path $targetPath -Force | Out-Null

    # 复制变更的文件到目标文件夹
    Copy-Item -Path (Join-Path $sourceFolder $_) -Destination (Join-Path $targetFolder $_) -Force
}

注意:在脚本中,将 sourceFolder 替换为原文件夹的路径,将 targetFolder 替换为新创建的补丁文件夹的路径。确保文件扩展名为 .ps1。

  1. 打开PowerShell终端,导航到包含 create_patch.ps1 的目录。
  2. 执行以下命令来运行脚本:
powershell 复制代码
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
.\create_patch.ps1

注意:这是两条命令,第一条命令用于设置执行策略,以允许运行脚本文件。第二条命令运行脚本文件。

完成以上步骤,你的补丁文件就已经摘好了~

Linux

linux步骤与windows相同,只有脚本上的区别。

要将Git仓库中变更的文件复制到新目录中形成补丁文件,并保持相同的目录结构,可以按照以下步骤进行操作:

  1. 首先,确保您已经在Git仓库的根目录下,并且已经切换到包含所需变更的分支或提交。

  2. 创建一个新的目标文件夹,用于存放补丁文件。可以选择在原文件夹的同级目录下创建一个新的文件夹。

  3. 执行以下命令来生成补丁文件:

    复制代码
    git diff --name-only > changes.txt

    这将生成一个包含所有变更文件路径的文本文件 changes.txt。该文件中每一行都是一个变更的文件路径。

  4. 创建一个脚本(例如 create_patch.sh),并将以下内容复制到脚本中:

    bash 复制代码
    #!/bin/bash
    
    # 指定源文件夹和目标文件夹
    source_folder="/path/to/source/folder"
    target_folder="/path/to/target/folder"
    
    # 读取变更文件列表
    while IFS= read -r file
    do
        # 获取文件所在的相对路径
        relative_path=$(dirname "$file")
    
        # 创建目标文件夹的相应目录结构
        mkdir -p "$target_folder/$relative_path"
    
        # 复制变更的文件到目标文件夹
        cp "$source_folder/$file" "$target_folder/$file"
    done < changes.txt

    在脚本中,将 source_folder 替换为原文件夹的路径,将 target_folder 替换为新创建的目标文件夹的路径。

  5. 保存并关闭脚本文件。然后,在终端中执行以下命令来运行脚本:

    bash 复制代码
    bash create_patch.sh

    这将根据 changes.txt 中列出的变更文件路径,在目标文件夹中复制相应的文件,并保持与原文件夹相同的目录结构。

完成上述步骤后,您将在目标文件夹中获得一个具有相同目录结构的补丁文件夹,其中包含了Git仓库中变更的文件。

相关推荐
估值探索者3 分钟前
【Python量化选股流水线 #04】选股器好不好用?「昨日候选→今日表现」回看验收
开发语言·python·股票数据·股票数据api接口
szp200510 分钟前
Cache API 会丢掉 URL 里的 #:我的 9 个模型分块一直写在同一条缓存上
javascript·浏览器
田里的水稻38 分钟前
PyTorch_Dataloader\TensorBoard---数据加载与可视化
人工智能·pytorch·python·神经网络·机器学习
Dmz丶43 分钟前
前端转 AI 100 天 Day 27:Docker 容器化——从“我电脑能跑“到“到处能跑“
python
卿卿的产品经理日记44 分钟前
【AI产品经理实战】Day 38|try-except 踩坑实录:报错是数据
人工智能·笔记·python·学习·产品经理
keyipatience1 小时前
TypeScript学习(1)
前端·javascript·学习·typescript·html·css3
全栈练习生1 小时前
文档智能与实践
python·ai
xifangge20251 小时前
基于 JavaScript 实现 CNC 数控切削参数与螺纹公差纯前端核算引擎
开发语言·前端·javascript
隐擎fox1 小时前
深入 Android 移动端风控与协议层对抗:内核级虚拟环境检测、网络堆栈特征伪装与住宅 IP 协同实战
android·网络·python·网络协议·tcp/ip
“AI国潮设计-小江”1 小时前
【AIGC实战】Python+SDXL批量生成「潮汕英歌舞冰淇淋蛋糕&红桃粿咖啡」IP,固定角色形象批量出甜品商业效果图
开发语言·人工智能·python·prompt·aigc