6

Can git archive include the directory that the .git project lives in?

For example, let's say my directory structure is like this:

-- /my-project-dir
----- /.git
----- /css
----- index.html
----- scripts.js

By default, when I do a git archive, I end up with a ZIP file like so:

-- my-project-dir.zip
----- /css
----- index.html
----- scripts.js

I'm wondering if there is a way that the archive command can include the parent directory as well, for example:

-- my-project-dir.zip
----- /my-project-dir
-------- /css
-------- index.html
-------- scripts.js
Pete
  • 7,289
  • 10
  • 39
  • 63

1 Answers1

15

Use the --prefix option:

$ pwd
/tmp/foo
$ ls -A
bar  .git
$ git archive --prefix foo/ -o foo.tar master
$ tar tf foo.tar
foo/
foo/bar

Be careful to include the trailing slash in foo/, otherwise you end up with the prefix prepended to each filename!

Thomas
  • 174,939
  • 50
  • 355
  • 478