用脚本快速提取补丁文件

目录

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

相关推荐
一点媛艺8 分钟前
Kotlin函数由易到难
开发语言·python·kotlin
魔道不误砍柴功1 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
_.Switch2 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
cs_dn_Jie3 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
测开小菜鸟3 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
开心工作室_kaic3 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿4 小时前
webWorker基本用法
前端·javascript·vue.js
萧鼎4 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸4 小时前
【一些关于Python的信息和帮助】
开发语言·python
疯一样的码农4 小时前
Python 继承、多态、封装、抽象
开发语言·python