Skip to content

Instantly share code, notes, and snippets.

@hnq90
Forked from vanquang9387/git-export.md
Created March 30, 2016 04:34
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hnq90/7078e0d432cd29cff2daf03207708948 to your computer and use it in GitHub Desktop.
Save hnq90/7078e0d432cd29cff2daf03207708948 to your computer and use it in GitHub Desktop.
git: export diff files between 2 branches/commits

We can get list of changed files between 2 branches/commits by

$ tar --ignore-failed-read -vczf archive.tgz $(git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT master develop)

Let's see important part:

  1. 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).

  2. --no-commit-id --name-only:
    Do not output the commit SHA1. Output only the names of the affected files instead of a full diff.

  3. --diff-filter=ACMRT:
    Only show files added, copied, modified, renamed or that had their type changed (eg. file → symlink) in this commit. This leaves out deleted files.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment