如何从git仓库中提取源文件?

14

我对Git很陌生,但花了太多时间来实现这一点。一年前我们曾有承包商为我们完成此项工作,所以除非我漏掉了什么,否则这是可以做到的。

我们有一个git存储库(仅项目.git和.git目录),这个项目是一个定制的网站。因此,我们需要提取存储库中的所有文件以便能够部署该网站。

我可以看到很多对象,但显然没有我期望的(.aspx文件等)。

那么从存储库中获取文件的过程是什么?

如果我表达不清楚,请让我知道。


4
只需克隆它?git clone /path/to/project.git - Memming
你可以查看http://git-scm.com/docs/git-clone。 - James Black
仅有.git目录也不是我所期望的方式。这不是你使用 Git 的方式。有人删除了项目的所有文件,然后只发送了存储库控制文件夹给你。你可以尝试通过在.git文件夹上一级运行命令git reset --hard来恢复已删除的文件,它应该会根据提交的数据重新创建已删除的内容。 - Havenard
1
@Havenard 可能是一个裸仓库,这对于备份来说是最合理的。git clone 应该可以解决这个问题。 - metacubed
@metacubed(和Havenard),确实如此。从我从thirtythreeforty选择的解决方案来看,它是一个裸仓库。使用CLI而不是GUI解决了我的问题。感谢大家的帮助。 - epurple
3个回答

24
你的承包商给你留下了一个裸仓库。这是Git用于没有工作副本(例如在服务器上)的远程存储库。
只需从裸仓库克隆即可:
git clone project.git

你应该最终得到一个名为project的目录,其中包含master分支的检出和一个带有克隆库的.git目录。这个project目录是克隆库的完整副本,但是它是可以进行有用操作的一种类型。

这正是我一直在寻找的!我不知道我们可以用克隆这种方式。我最初使用了GUI,但克隆并没有提取出来。非常感谢! - epurple
绝对的传奇!节省了我723个小时。 - Karl

5
git使用的术语是clone,它意味着在当前目录中复制存储库。例如:
git clone https://github.com/path/to/project 

你可以选择指定一个目标目录,并将你的项目放在那里,像这样:

git clone https://github.com/path/to/project path/to/directory

来自Git文档


请注意,您不必使用 GitHub 远程。一个裸仓库文件夹同样可以作为源。 - George Hilliard

4
假设您只想从存储库中获取所有文件而不创建新的克隆存储库,您可以使用git archive。请参见此问题文档以了解如何使用它。
如果您需要其他分支而不是master分支,则可以使用git branch获取列表(文档在此处)。

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