如何获取当前Git分支的提交记录及对应提交文件的变更内容
解决方法
你可以用以下两种方案实现需求,查询结果和git cherry筛选出的「feature/samples/Automapper分支存在、feature/Mappers分支不存在的提交」完全对应:
方案1:直接用git log一键输出(更推荐)
git log可以直接筛选两个分支的差异提交,同时输出变更内容,命令如下:
# 输出提交基础信息 + 变更文件统计(增减行数、文件名) git log --no-merges --stat feature/Mappers..feature/samples/Automapper # 输出提交基础信息 + 完整代码变更内容 git log --no-merges -p feature/Mappers..feature/samples/Automapper # 输出提交基础信息 + 仅变更文件名(无统计信息) git log --no-merges --name-only feature/Mappers..feature/samples/Automapper
参数说明:
--no-merges:排除合并提交,和git cherry的默认输出规则对齐A..B的写法表示筛选所有存在于B分支、不存在于A分支的提交,和你原来git cherry A B的筛选逻辑完全一致
方案2:基于原有git cherry的结果联动查询
如果你想保留原有git cherry的输出逻辑,可以通过管道命令批量查询每个提交的变更内容:
# 输出每个匹配提交的信息 + 文件变更统计 git cherry -v feature/Mappers feature/samples/Automapper | grep '^+' | awk '{print $2}' | xargs git show --stat # 输出每个匹配提交的信息 + 完整代码diff git cherry -v feature/Mappers feature/samples/Automapper | grep '^+' | awk '{print $2}' | xargs git show
内容的提问来源于stack exchange,提问作者Anton Gridushko
相关产品推荐
相关产品推荐

