8

我有.git目录,但我没有实际的工作目录,只有 repo。我可以使用什么命令来重新创建工作目录?

4

3 回答 3

12

假设 .git 目录位于一个名为“test”的空目录中。

git clone test new_test

new_test 现在将包含 .git 目录和工作副本。或者,您也可以直接指向 .git 目录:

git clone test/.git new_test

结果相同。

于 2012-07-22T04:10:57.813 回答
1

如果您需要的不是要使用的工作存储库,而只是工作文件的副本,则可以git archive.git目录上运行以从工作树生成 Tar 文件。

它通常在标准输出上生成,因此您可以简单地运行git --git-dir=/path/to/repo archive | tar x以在您的工作目录中获取副本。

于 2012-07-22T04:14:27.863 回答
1

我认为您实际上是在问如何使裸存储库成为非裸存储库。虽然再次克隆它可能是最简单的,但这也有效:

首先确保所有内部 git 文件(例如 index、HEAD)和文件夹(例如 hooks、info、objects、refs)都在一个名为 .git 的文件夹中。现在您的存储库仍然是裸露的,情况可能并非如此。所以只是重命名它。然后将其移动到您想要成为工作目录的文件夹中。

然后在工作目录级别:

git config core.bare 0
git checkout -f

但是,再次克隆更容易;-)

于 2012-07-22T07:42:13.960 回答