使用git获得最新版本


380

我想跟踪一个使用git的项目。我不想克隆完整的存储库和完整的历史记录,我只想要最新的修订版,并且希望能够从远程项目中更新到新修订版。

我尝试使用git clone,但这会创建整个存储库的副本(巨大的文件大小),并且跟踪更改会使磁盘空间更大(100mb的文件现在占用2gb以上)。

我不会提交补丁,也不需要历史记录。我只想要最新版本,例如subversion。

这可能在git中吗?


2
使用浅层克隆,Git 1.9 / 2.0(2014年第一季度)将效率更高:stackoverflow.com/a/21217267/6309stackoverflow.com/a/21217326/6309
VonC

Answers:


552

使用以下--depth选项git clone

创建一个浅表克隆,其历史记录将被截断为指定的提交数。

例: git clone --depth=1 <remote_repo_url>


87
示例:git clone --depth=1 <remote_repo_url>
iDev247

14
自从在git 1.9中提交82fba2b以来,这些限制不再存在。
niutech 2014年

1
有什么限制?
忽略

4
@Triangles:局限性(不再是当前的):浅的存储库有很多局限性(您不能从中克隆或获取,也不能从中推入或推入其中),但是如果您仅对大型的最近历史感兴趣,就足够了历史悠久的项目,并且希望将修补程序作为补丁发送。
odinho-Velmont


79

git clone --depth=1 <URL>如果远程支持,则替代浅层克隆()的解决方案是使用git archive--remote选项:

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf -

或者,如果可以使用某些网络界面(如gitweb或GitHub )浏览有问题的远程存储库,则它有可能具有“快照”功能,您可以从网络界面下载最新版本(无版本信息)。


4
但是,此解决方案不能满足此要求:“我希望能够从远程项目更新到新修订版”。由于它基本上是下载存档的,因此它将无法快速进行一两次提交。“浅克隆”允许这样做。不过,我想这个解决方案有其用例,所以值得一提。
VasiliNovikov
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.