git - 我如何在 git 中找到包含(而不是触摸)文件的所有提交?

标签 git

在 git 中,我如何从分支头返回并找到包含(不一定涉及)特定文件的每个提交? “touches”版本可以这样写:

git log mybranch -- filename | grep "^commit" | awk '{print $2}'

不过,对于我正在尝试做的事情,即构建包含特定文件(pom.xml)的所有修订版,这还不够。有什么想法吗?

最佳答案

作为另一种方法,这似乎不需要检查不同的修订版就可以工作:

for REV in `git rev-list <mybranch>`
do
  HASPOM=`git ls-tree --name-only -r $REV | grep '<filename>'`
  echo "$REV $HASPOM" | awk 'NF==2{print $1}{}'
done

关于git - 我如何在 git 中找到包含(而不是触摸)文件的所有提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12218568/

相关文章:

c# - 跨构建服务器和开发人员机器为 Stylecop 和 Fxcop 共享相同的规则

git - 推送失败后重新推送提交

git - 让用户只推送到他自己的分支

git - 像 Git 这样的 DVCS 是否不适合使用持续集成的团队?

git - Sourcetree 中 check out 现有分支和 check out 新分支之间的区别

git - 如何在 cocoa 中下载 github 项目的所有子模块?

windows - 我怎样才能让 git 和 copSSH 在正确的目录中查找 key ?

git - 如何将我的 git 存储库克隆到远程计算机?

php - 如何让自己摆脱 FTP 而转而使用版本控制

git - 如何删除以句点结束的分支