欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > 获取git分支间差异文件列表

获取git分支间差异文件列表

2025/7/9 0:32:25 来源:https://blog.csdn.net/qq_17328759/article/details/147150376  浏览:    关键词:获取git分支间差异文件列表

背景

国际化开发时,每次新功能上线,都需要对比变更的文件进行国际化处理。项目代码量小时,我们可以进行全量处理,但是岁代码量增加,就需要只对增量的部分进行过滤。

解决思路:

使用gitPython,对新功能分支和主干分支比较,获取变更的文件列表。然后使用国际化替换脚本,完成国际化的支持。

实现代码:

# -*- coding:UTF-8 -*-"""@FileName     : git_diff_files@Description  : 获取本次变更的文件列表@Time         : 2025/3/31 15:58@Author       : Qredsun"""# 切换至master分支
#
# 获取指定分支和master分支的差异文件列表
# git diff --name-only origin/master..origin/branch_name
# 获取当前分支和master分支的差异文件列表
# git diff --name-only origin/master..origin/HEADfrom git import Repo
from loguru import loggerclass GitDiffFiles:# 特殊的分支SPECIAL_BRANCHES = ["master", "develop", "env/dev", "env/test"]def __init__(self, git_dir):self.git_dir = git_dirself.check_git_dir()def check_git_dir(self):# 检查是否是git目录self.repo = Repo(self.git_dir)if self.repo.bare:logger.warning("当前目录不是一个有效的Git仓库。")return Falseif self.repo.is_dirty():logger.warning("当前目录有未提交的变更,请先提交或暂存变更。")return Falseif self.repo.active_branch.name in self.SPECIAL_BRANCHES:logger.warning(f"当前分支不能是{self.SPECIAL_BRANCHES}分支,请切换到你的开发分支。")return Falsedef update_dir(self):# 拉取最新代码self.repo.remote().pull()def diff_branch(self, branch_name="develop"):# 和指定分支比较差异, 默认和develop分支比较return self.repo.active_branch.commit.diff(branch_name)def get_diff_files(self):# 获取本次变更的文件列表diff_files = [item.a_path for item in self.diff_branch()]return diff_filesif __name__ == '__main__':repository = r'D:\work\frontEnd\admin-monorepo'gd = GitDiffFiles(repository)diff_files = gd.get_diff_files()print(diff_files)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词