第14章:数据的导入和导出
基础知识
Git对象采用独特的方式存放。 理论上说,有了git hash-object
和git cat-file
,任何数据都可以导入导出。 然而这样做并不方便;于是有了worktree,可以通过git update-index
和git checkout-index
来导入导出数据。 那么有没有这两种方法以外的方式呢?
本章在第1章的基础之上继续。
tree导入导出:git archive
git archive
Lv2 使用
git checkout-index
即可Lv3
反过来则没有简单方法,只能先tar x
再git add
注意:如果指定了一个commit或者tag,则文件的日期会被设置成committer date。 另外commit的SHA1会被存储在tar/zip中的备注,可以通过git get-tar-commit-id
访问:
任意对象导入导出
二进制格式 -
git bundle create
/git bundle unbundle
- 参见第5章适合于机器的文本格式(类似与脚本) -
git fast-export
/git fast-import
适合于人类的文本格式(类似于e-mail)
git format-patch
/git am
git request-pull
git send-email
/git imap-send
然而真正需要这些的场景实在太罕见了——上传至GitHub就可以非常好地完成数据的导入导出功能—— 这些命令也就不再介绍了。
与其他版本控制软件交互操作
节选自git help -a
:
总结
常用Lv3
git archive [--prefix=<prefix>] [-o <output>] <tree-ish> -- <path>...
不常用
git bundle create
/git bundle unbundle
- 参见第5章git fast-export
/git fast-import
git format-patch
/git am
/git request-pull
/git send-email
/git imap-send
最后更新于