【原创】git archive:像svn export一样导出纯净的版本代码库【或许tar更简单粗暴】
问题背景:
我们知道 svn export 可以用来从代码库中导出一份干净的代码(即没有.svn目录),那么git中如何玩呢? 遗憾的是并没有相应的 git export 指令,但是却有一个类似的 git archive 指令,个人不大喜欢用。解决方案-1:
使用 git archive 指令1、打包master分支:
git archive --format tar.gz --output "./target.tar.gz" master2、打包某次commit:
git archive --format tar.gz --output "./target.tar.gz" 5ca16ac0d6036033、打包master分支下指定的目录:
git archive --format tar.gz --output "./target.tar.gz" master dir1 dir2 ... dirN
解决方案-2:
使用 tar --exclude 指令tar czvf target.tar.gz 要打包的目录 ---exclude=要打包的目录/.git
问题总结:
1、git archive 打包时必须位于分支所在的根目录,不利于整体打包。2、tar --exclude 指令简单粗暴,但是拥有较大的灵活性和可控性。
3、具体使用哪个解决方案, 其实还得看自己的具体需求是什么。
版权声明:除非注明,本文由( blogdaren )原创,转载请保留文章出处。