Do a “git export” (like “svn export”)?

后端 未结 30 2939
暖寄归人
暖寄归人 2020-11-21 22:33

I\'ve been wondering whether there is a good \"git export\" solution that creates a copy of a tree without the .git repository directory. There are at least thr

30条回答
  •  太阳男子
    2020-11-21 22:56

    Probably the simplest way to achieve this is with git archive. If you really need just the expanded tree you can do something like this.

    git archive master | tar -x -C /somewhere/else
    

    Most of the time that I need to 'export' something from git, I want a compressed archive in any case so I do something like this.

    git archive master | bzip2 >source-tree.tar.bz2
    

    ZIP archive:

    git archive --format zip --output /full/path/to/zipfile.zip master 
    

    git help archive for more details, it's quite flexible.


    Be aware that even though the archive will not contain the .git directory, it will, however, contain other hidden git-specific files like .gitignore, .gitattributes, etc. If you don't want them in the archive, make sure you use the export-ignore attribute in a .gitattributes file and commit this before doing your archive. Read more...


    Note: If you are interested in exporting the index, the command is

    git checkout-index -a -f --prefix=/destination/path/
    

    (See Greg's answer for more details)

提交回复
热议问题