I would like to get a list of modified and added files in an specific commit so that I can export them and generate a package with the file structure.
The idea is to get the package and extract it on the server. For many reasons I can’t create a hook to pull the repo automatically and the easiest way I have to keep the server updated is generating this package.
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_id
git diff-tree -r $commit_id:
Take a diff of the given commit to its parent(s) (including all subdirectories, not just the top directory).
Do not output the commit SHA1. Output only the names of the affected files instead of a full diff.
Only show files added, copied, modified, renamed or that had their type changed (eg. file → symlink) in this commit. This leaves out deleted files.
UPDATE FROM THE COMMENT:
Base on the question context and the comments below, with the following command, you can get the
ACMRT files as a
.tar file with their folder structure.
git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT $commit_id | tar -czf file.tgz -T -
Answered By – Aristotle Pagaltzis
This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0