我正在尝试按照Making 'git log' ignore changes for certain paths中的建议列出来自不触及某个目录的分支的提交:
git rev-list heads/demo ^master -- . ':(exclude)demo'
(请注意,demo
既是分支的名称,也是要排除的文件夹的名称。)
结果包含触及其他路径的所有提交,但仅排除仅触摸demo/
目录中的文件的提交。我想要看的只是那些不接触demo/
目录中任何文件的提交。澄清:
cc3ecaa define a task for creating the demo app
M .gitignore
M Gruntfile.js
A demo/compile
A tasks/demo.js
目前包含,因为它包含demo/
以外的文件,但我希望将其排除,因为它包含demo/
内的文件。
答案 0 :(得分:0)
awk ' !seen[$1]++ && NR!=FNR ' \
<(git rev-list master..heads/demo -- demo/) \
<(git rev-list master..heads/demo)
或
awk ' !NF{ printit=1 } !seen[$1]++ && printit' <<EOD
$(git rev-list master..heads/demo -- demo/)
$(git rev-list master..heads/demo)
EOD
或
( git rev-list master..heads/demo -- demo/
echo
git rev-list master..heads/demo ) \
| awk '!NF { ++printit } seen[$1]++ && printit'