git unpack-objects之后的源代码树在哪里?

时间:2018-09-18 12:16:30

标签: git

我有一个GIT源对象。

$ tree .git
.git
├── branches
├── config
├── description
├── HEAD
├── hooks
│   ├── applypatch-msg.sample
│   ├── commit-msg.sample
│   ├── post-update.sample
│   ├── pre-applypatch.sample
│   ├── pre-commit.sample
│   ├── prepare-commit-msg.sample
│   ├── pre-rebase.sample
│   └── update.sample
├── info
│   └── exclude
├── objects
│   ├── info
│   │   └── packs
│   └── pack
│       ├── pack-8c58c09efcd6b2feb30685aca8e67801837860d3.idx
│       └── pack-8c58c09efcd6b2feb30685aca8e67801837860d3.pack
├── packed-refs
└── refs
    ├── heads
    └── tags

解压缩目标文件后。

$ git unpack-objects < .git/objects/pack/pack-8c58c09efcd6b2feb30685aca8e67801837860d3.pack

Unpacking objects: 100% (16748/16748), done.

进度已经完成,但是我看不到源代码的工作树。

解包对象后,源树将位于何处?

2 个答案:

答案 0 :(得分:2)

unpack-objects不会创建源树。它将对象数据库从 packfile 格式解压缩为松散对象格式。

现在,松散的对象将位于.git/objects/<first two nibbles of SHA-1 object ID in hexadecimal representation>/<remainder of SHA-1 object ID in hexadecimal representation>

目前尚不清楚您想要实现什么。存储格式是完全透明的,所有命令都可以使用打包格式或松散格式(或两者兼而有之)。您从不需要 显式打包或解压缩对象。有时您可能想要显式打包对象数据库,因为packfile格式存储效率更高。另一个方向几乎没有任何意义。

答案 1 :(得分:0)

在这种情况下非常简单。只需输入 克隆 命令。

   $ git clone .git my_source_tree
     Cloning into 'my_source_tree'...
     done.