可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I apolagise if this isn't very clear but in Git, is there a way to see all changed files on a branch, by name only. As far as I know I can use git log to see files that have changed in a single commit but I want to see all files that have changed since the branch was created, over several commits.
There is git diff but this also lists the changed files in the branch I'm comparing to which I don't want to see. I kind of want a command that says 'show me file names for all changed files in this branch'.
Many thanks
回答1:
Supposing you're on branch foo, and you're interested in which files have changed since the point when it diverged from master, you can just do:
git diff --name-only master...
(Note the three dots.) If you're not foo, you can use the full form:
git diff --name-only master...foo
I made some graphics that explain the double-dot and triple-dot notations, and their differences between their meaning in git rev-list and git log - you can find them in this answer.
回答2:
Don't know that there is something that does exactly what you want based only on your current branch, but if you know the commit id that is the parent of your branch, you can do:
git diff --name-only ..HEAD
回答3:
Assuming you have checked out the branch you are working on, and you want to compare it to master:
git diff --name-only master
回答4:
I am using this command to find out the list of N files changed between two versions, here N is 50
git log --pretty=format: --name-only ... | sort | uniq -c | sort -rg | head -50