用脚本快速提取补丁文件

目录

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

相关推荐
梧桐树04294 小时前
python常用内建模块:collections
python
燃先生._.4 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
Dream_Snowar4 小时前
速通Python 第三节
开发语言·python
高山我梦口香糖5 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
蓝天星空5 小时前
Python调用open ai接口
人工智能·python
jasmine s5 小时前
Pandas
开发语言·python
郭wes代码5 小时前
Cmd命令大全(万字详细版)
python·算法·小程序
leaf_leaves_leaf6 小时前
win11用一条命令给anaconda环境安装GPU版本pytorch,并检查是否为GPU版本
人工智能·pytorch·python
夜雨飘零16 小时前
基于Pytorch实现的说话人日志(说话人分离)
人工智能·pytorch·python·声纹识别·说话人分离·说话人日志