自动化脚本之Git相关

这篇具有很好参考价值的文章主要介绍了自动化脚本之Git相关。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

用来还原指定提交中的所有修改文件的脚本

脚本功能介绍

使用示例

用来导出指定分支和提交范围内的所有修改文件的脚本

脚本功能介绍

使用示例

用来生成所有分支上的所有唯一提交的补丁文件的脚本

脚本功能介绍

使用示例


自己工作用的 git相关自动脚本

用来还原指定提交中的所有修改文件的脚本

脚本功能介绍

这个脚本是用来还原指定提交中的所有修改文件的。它接受一个参数,就是要还原的提交的哈希值。它会获取指定提交中修改的文件列表,并将这些文件还原到工作目录中,即将这些文件恢复到指定提交的父提交的状态。然后,它会将这些更改添加到暂存区并提交,以完成还原操作。

#!/bin/bash

# 检查参数数量
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <commit-hash>"
    exit 1
fi

commit_hash="$1"

# 获取指定提交中修改的文件列表
files=$(git show --name-only --pretty=format: "$commit_hash")

# 将指定提交中的所有修改文件还原到工作目录
for file in $files; do
    echo "Reverting changes for: $file"
    git checkout "$commit_hash^" -- "$file"
done

# 将更改添加到暂存区并提交
#git add .
#git commit -m "Revert changes from commit $commit_hash"

使用示例

要运行这个脚本,需要在终端中输入:

bash revert.sh <commit-hash>

例如:

bash revert.sh 3a4b5c6 # 将3a4b5c6提交中的所有修改文件还原

然后就可以看到类似下面的输出:

Reverting changes for: file1.txt
Reverting changes for: file2.txt
Reverting changes for: file3.txt
[master 7d8e9f0] Revert changes from commit 3a4b5c6
 3 files changed, 12 insertions(+), 9 deletions(-)

用来导出指定分支和提交范围内的所有修改文件的脚本

脚本功能介绍

这个脚本是用来导出指定分支和提交范围内的所有修改文件的。它接受两个参数,分别是要导出的分支名和提交哈希值。它会获取指定分支和提交范围内修改的文件列表,并将这些文件复制到一个新建的目录中,目录的名字由分支名和提交哈希值组成。如果文件在指定的提交中被删除了,就跳过该文件。
 

#!/bin/bash

if [ $# -ne 2 ]; then
  echo "Usage: $0 <branch> <commit_hash>"
  exit 1
fi

branch="$1"
commit_hash="$2"
export_dir="exported_files_${branch}_${commit_hash}"

files_to_export=$(git diff-tree --no-commit-id --name-only -r ${branch}~${commit_hash})

mkdir -p "$export_dir"

for file in $files_to_export; do
  file_dir=$(dirname "${export_dir}/${file}")
  mkdir -p "$file_dir"
  git show ${branch}:${commit_hash}^ -- "$file" > "${export_dir}/${file}" 2> /dev/null || echo "Skipped deleted file: $file"
done

echo "Files exported to $export_dir"

使用示例

要运行这个脚本,需要在终端中输入:

bash export.sh <branch> <commit_hash>

例如:

bash export.sh master 3a4b5c6 # 将master分支上3a4b5c6之前的所有修改文件导出

然后就可以看到类似下面的输出:

Skipped deleted file: file1.txt
Files exported to exported_files_master_3a4b5c6

用来生成所有分支上的所有唯一提交的补丁文件的脚本

脚本功能介绍

这个脚本是用来生成所有分支上的所有唯一提交的补丁文件的。它不接受任何参数。它会遍历所有的分支,并获取每个分支上的提交列表,然后对每个提交进行处理。如果一个提交已经被处理过,就跳过它;如果一个提交的消息中包含"init",就跳过它;如果一个提交是孤立的,就跳过它;如果一个提交修改了超过100个文件,就跳过它;如果一个提交的二进制差异超过10MB,就跳过它。对于其他的提交,它会生成一个补丁文件,并保存到patches目录下,以分支名和提交消息为子目录和文件名。

使用示例

要运行这个脚本,只需要在终端中输入:

bash generate_patches.sh

然后就可以看到类似下面的输出:

Skipped patch with 'init' in commit message: init project
Skipped patch with more than 100 files changed: patches/master/add_some_features.patch
Skipped patch larger than 10MB: patches/dev/fix_some_bugs.patch
Skipped orphan commit: test orphan commit

在patches目录下,可以看到类似下面的结构:文章来源地址https://www.toymoban.com/news/detail-665729.html

patches/
├── master
│   ├── add_some_features.patch
│   └── update_readme.patch
└── dev
    ├── fix_some_bugs.patch
    └── refactor_code.patch

到了这里,关于自动化脚本之Git相关的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试脚本编写(超详细)

    🍅 视频学习: 文末有免费的配套视频可观看 🍅  关注公众号【互联网杂货铺】,回复 1  ,免费获取软件测试全套资料,资料在手,涨薪更快 什么是自动化测试? 自动化测试是验证和验证软件是否满足所有用户需求,并使用自动化工具按预期运行。它检查在产品开发阶段

    2024年04月26日
    浏览(39)
  • 自动化测试常用脚本语言有哪些?

    在自动化测试中,常用的脚本语言包括: 1. Python:Python是一个简洁、易读且功能强大的脚本语言,广泛应用于自动化测试领域。它具有丰富的测试框架和库,可以用于Web、移动应用和API等各种类型的测试。 2. Java:Java是一种面向对象的编程语言,具有跨平台的特性。在自动化

    2024年02月09日
    浏览(50)
  • Python自动化测试之登录脚本

    前提已经安装好python、pycharm,配置了对应的环境变量。 文件–设置—项目:script----python解释器----+selenium 以谷歌浏览器为例 下载地址:https://chromedriver.chromium.org/downloads (1)先查看谷歌浏览器版本; (2)下载类似版本号的.zip,解压到pyhton环境目录下 (也可以下载到pycharm下

    2024年02月05日
    浏览(57)
  • 自动化测试系列 —— UI自动化测试

    UI 测试是一种测试类型,也称为用户界面测试,通过该测试,我们检查应用程序的界面是否工作正常或是否存在任何妨碍用户行为且不符合书面规格的 BUG。了解用户将如何在用户和网站之间进行交互以执行 UI 测试至关重要,通过执行 UI 测试,测试人员将尝试模仿用户的行为

    2024年02月10日
    浏览(50)
  • Selenium如何用于编写自动化测试脚本?

    Selenium如何用于编写自动化测试脚本?它提供了许多测试工具和API,可以与浏览器交互,模拟用户操作,检查网页的各个方面。下面是一些步骤,可以帮助你编写Selenium自动化测试脚本。 1、安装Selenium库和浏览器驱动程序 首先,你需要安装Selenium库和浏览器驱动程序,例如C

    2024年02月09日
    浏览(42)
  • selenium(4)-------自动化测试脚本(python)

    webdriverAPI 一)定位元素的方式,必问 1.1)id来定位元素,前提是元素必须具有id属性,因为有的元素是没有id的 1.2)name,元素必须有name,并且必须全局唯一 1.3)tagname,元素是一定有的,但是必须全局唯一才可以定位到元素 1.4)classname,class的名字,必须全局唯一 1.5)link_text,通过

    2024年02月02日
    浏览(56)
  • selenium(7)----自动化测试脚本(python版本)

    1)HTML报告的生成:测试报告最好要生成在一个特殊的目录下面 1)在python的lib文件下面添加文件是HTMLTestRunner.py文件: self就是当前类中的实例 2)HTML报告的生成步骤: 2.1)解决HTML文件存放的问题:创建一个文件夹 2.2)HTML报告命名问题,如何进行动态命名,每一次生成的文件名称如何不

    2024年01月21日
    浏览(42)
  • selenium IDE自动化测试脚本的实现

    Selenium IDE   是一个简单的录制回放工具,它可以录制你在浏览器上的操作,回放脚本时,它可以重现录制的动作,就好像你又操作了一遍一样。  selenium IDE是个浏览器插件,你需要在浏览器上安装该插件才能使用。 1.下载chrome或者firefox浏览器的插件。 下载路径:Selenium IDE

    2024年02月03日
    浏览(61)
  • 软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

    自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作用,所以目前自动化测试工程师,也是

    2024年02月05日
    浏览(63)
  • 用selenium IDE手工编写自动化测试脚本

    目录 一、打开selenium IDE插件  二、输入脚本 1.元素定位的验证  console验证Xpath定位 2.元素定位的验证   console验证css定位 selenium IDE属于玩具型自动化测试脚本编写工具,它简单、易上手,对于web自动化测试入门来说,是个非常不错的选择。 使用seleniium IDE插件录制脚本非常容

    2023年04月27日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包