I have the following command:
git archive HEAD | tar -xC GitPulls/
This gets everything from HEAD and places it in the previously empty /GitPulls/ folder. The folder now contains many different files – say 1000 files.
I want to get a flat text list of exactly these 1000 files with no repetition — that is, I want a list of files that git archive HEAD | tar -xC GitPulls/ will place in the /GitPulls/ folder.
I tried git log --name-only. However, this provides output that repeats the same file multiple times — presumably for each time that the file was modified and staged and committed.
How would this change if I wanted only the contents of a specific previous commit and not the HEAD? That is, how can I obtain the unique list of files that would be unzipped into the /GitPulls/ folder on running the following: git archive <SHAID> | tar -xC GitPulls/?
>Solution :
This command should do:
git ls-tree -r --name-only <commit-id>