如何识别在特定功能分支上修改的文件。
情景:
我一直在数据仓库脚本环境中处理git,我们将源代码部署到不同的环境进行测试,我们没有编译过程。
我们有大约30个功能分支,我们追溯到主分支以检查是否有任何功能分支已经上线,并使用生产代码更新其他功能分支。
此时,我们使用以下命令在功能分支上的两个提交点之间进行更改并部署已修改的文件。
git show --pretty="format:" --name-only ${OLDCOMMIT}..${NEWCOMMIT} | sort | uniq > $FileList
然而,这使我们测试在其他分支上修改的脚本。
我们希望通过选择在当前功能分支上修改的更改并部署这些文件进行测试来最小化测试活动。
该脚本可以忽略在其他分支上修改的文件,因为这些脚本已经过其他功能分支开发人员的测试。
答案 0 :(得分:0)
您可以使用简单的diff命令来执行此操作:
git diff master HEAD --name-status
HEAD
是您当前的分支。如果您希望每次提交feature
而不是master
,那么您可以使用修订范围:
git log master..HEAD --name-status
您可以阅读有关使用revision/commit ranges from the Pro Git guide的更多信息。