【原创】git archive:像svn export一样导出纯净的版本代码库【或许tar更简单粗暴】

blogdaren 2022-11-29 抢沙发 152人次

问题背景:

我们知道 svn export 可以用来从代码库中导出一份干净的代码(即没有.svn目录),那么git中如何玩呢? 遗憾的是并没有相应的 git export 指令,但是却有一个类似的 git archive 指令,个人不大喜欢用。

解决方案-1:

使用 git archive 指令
1、打包master分支:
git archive --format tar.gz --output "./target.tar.gz" master
2、打包某次commit:
git archive --format tar.gz --output "./target.tar.gz" 5ca16ac0d603603
3、打包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 )原创,转载请保留文章出处。

本文链接:【原创】git archive:像svn export一样导出纯净的版本代码库【或许tar更简单粗暴】

Free Web Hosting