我正在尝试按照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/
中的文件。
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'