Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git解包对象以获取实际文件后会发生什么?_Git - Fatal编程技术网

git解包对象以获取实际文件后会发生什么?

git解包对象以获取实际文件后会发生什么?,git,Git,我做了一个git解压.pack文件中的对象。我得到的是从00到ff的许多子目录,每个子目录都包含许多名称为SHA1哈希的平铺,但是试图显示它们的内容会让我产生一些垃圾。现在我需要从这些散列文件中获取实际的源文件?如果您将.pack文件放在新的git init'd存储库的.git/objects/pack/目录中,您应该能够git checkout-b somebranch ANYSHA1 例如: # find a commit: faux@reg:~/git% git rev-parse HEA

我做了一个git解压.pack文件中的对象。我得到的是从00到ff的许多子目录,每个子目录都包含许多名称为SHA1哈希的平铺,但是试图显示它们的内容会让我产生一些垃圾。现在我需要从这些散列文件中获取实际的源文件?

如果您将.pack文件放在新的
git init
'd存储库的
.git/objects/pack/
目录中,您应该能够
git checkout-b somebranch ANYSHA1

例如:

# find a commit:
faux@reg:~/git% git rev-parse HEAD
6f5e880c68099b185e60b2492c75e506e16d8292
faux@reg:~/git% cd ..

# init:
faux@reg:~% git init bar
Initialized empty Git repository in /home/faux/bar/.git/

# add packs:
faux@reg:~% cp git/.git/objects/pack/* bar/.git/objects/pack
faux@reg:~% cd bar

# checkout:
faux@reg:~/bar% git checkout -b somebranch 6f5e880c68099b185e60b2492c75e506e16d8292
Switched to a new branch 'somebranch'

# done!
faux@reg:~/bar% ls
abspath.c
contrib
...

如果将.pack文件放在新的
git init
'd存储库的
.git/objects/pack/
目录中,您应该能够
git checkout-b somebranch ANYSHA1

例如:

# find a commit:
faux@reg:~/git% git rev-parse HEAD
6f5e880c68099b185e60b2492c75e506e16d8292
faux@reg:~/git% cd ..

# init:
faux@reg:~% git init bar
Initialized empty Git repository in /home/faux/bar/.git/

# add packs:
faux@reg:~% cp git/.git/objects/pack/* bar/.git/objects/pack
faux@reg:~% cd bar

# checkout:
faux@reg:~/bar% git checkout -b somebranch 6f5e880c68099b185e60b2492c75e506e16d8292
Switched to a new branch 'somebranch'

# done!
faux@reg:~/bar% ls
abspath.c
contrib
...

是否需要执行git解包对象
?为什么不仅仅是
git cat文件
?为什么直接使用.pack文件?如果使用完整的git存储库,则可以使用标准git命令(“git签出”、“git显示”等)轻松访问文件。打包文件将由git提取,无需手动处理打包文件。由于带宽限制,我不允许进行git克隆,git克隆不断失败。因此,我将.pack和.idx文件压缩为700mb文件,现在得到了.pack和.idx文件。现在我想从那些.pack和.idx文件中重新创建我的git源代码树。@Borelay,我只有一个.pack和.idx文件。最初,我尝试将它们移动到另一个目录,解包后,我得到了很多目录,其中包含以SHA1哈希命名的文件。我在其中一个文件上使用了git-cat文件,并得到了一个列表。我一直在寻找一个快捷方式来创建我的源代码树。不幸的是,我很懒:)你需要做
git解包对象吗?为什么不仅仅是
git cat文件
?为什么直接使用.pack文件?如果使用完整的git存储库,则可以使用标准git命令(“git签出”、“git显示”等)轻松访问文件。打包文件将由git提取,无需手动处理打包文件。由于带宽限制,我不允许进行git克隆,git克隆不断失败。因此,我将.pack和.idx文件压缩为700mb文件,现在得到了.pack和.idx文件。现在我想从那些.pack和.idx文件中重新创建我的git源代码树。@Borelay,我只有一个.pack和.idx文件。最初,我尝试将它们移动到另一个目录,解包后,我得到了很多目录,其中包含以SHA1哈希命名的文件。我在其中一个文件上使用了git-cat文件,并得到了一个列表。我一直在寻找一个快捷方式来创建我的源代码树。很遗憾,我很懒:)非常感谢您提供的详细步骤。在过去的一周里,我一直在挣扎。但是现在我可以拿到文件了。我现在可以获取/推/拉到远程存储库吗?我是否需要在.git目录中进行任何更改以连接到远程存储库?如何切换到远程存储库中可用的分支?我需要复制任何文件吗?再次非常感谢。事实上,在git status报告我文件被删除后,我尝试了git初始化和git重置——很难。但是你的方法看起来很干净。你现在应该能够
git远程添加-f origin了url://to/remote/repository
,那么
git remote update
将很高兴地下载很少的内容(希望如此!),您将能够正常继续。非常感谢您提供了详细的步骤。在过去的一周里,我一直在挣扎。但是现在我可以拿到文件了。我现在可以获取/推/拉到远程存储库吗?我是否需要在.git目录中进行任何更改以连接到远程存储库?如何切换到远程存储库中可用的分支?我需要复制任何文件吗?再次非常感谢。事实上,在git status报告我文件被删除后,我尝试了git初始化和git重置——很难。但是你的方法看起来很干净。你现在应该能够
git远程添加-f origin了url://to/remote/repository
,那么
git remote update
将很高兴地下载很少的内容(希望如此!),您将能够正常继续。