从.git目录中恢复项目源代码

4

如何从包含对象和包文件的 .git 目录中恢复源代码?如何配置配置文件使其成为本地仓库?


代码已经存在还是已经被删除了?如果已经被删除,您能否检出另一个副本? - gabe3886
哇,回答好迅速!所有的代码都在那里,幸运地。 - Tigre
2个回答

2

如果这是一个普通的仓库,其工作目录被删除,只需在.git目录的父级中检出您想要的内容,例如:git checkout master

如果它是一个裸仓库(即它是您的git服务器),则使用git clone <path to .git directory>将其克隆到另一个目录中。


谢谢。我不再能访问git服务器了。在检出过程之前,我需要提取packfiles吗? - Tigre
不需要,git会为你处理这个。 - David Deutsch
抱歉耽搁了。这是一个正常的代码库,但是“git checkout master”只会打印“Already on 'master' Your branch is up-to-date with 'origin/master'.”。 - Tigre
好的,那么执行 git checkout master . - David Deutsch

2

.git仓库被称为裸仓库。您可以使用以下命令:

git --git-dir=path_to_bare_repo.git archive HEAD | tar -x -C path_to_destination_dir

如果您只想将裸库转换为普通的Git仓库,请按照以下链接中的几个步骤进行操作: 如何将裸Git仓库转换为普通仓库(原地)? 操作非常简单:
mkdir repo_dir
mv path_to_bare_repo.git repo_dir/.git
cd repo_dir/.git
git config --local --bool core.bare false

非常感谢!这就是它的解决方法:“git --git-dir=path_to_bare_repo.git archive HEAD | tar -x -C path_to_destination_dir”。 - Tigre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接