2013-07-16 63 views
2

我使用的是laravel 4框架,为了保持最新状态,我添加了一个指向上游的远程指向框架回购并运行git fetch。问题在于它在本地回购中拉动了整个框架的历史。 有什么方法可以删除上游历史记录吗?Git删除远程历史

回答

3

嗯,这是git的整点 - 每一个仓库克隆平等。不必担心整个历史记录 - git在将整个历史存储在git对象存储中时非常高效(假设git gc有时会执行一次,它就是这样)。

压缩git对象存储的大小(保存在.git目录下)超过树顶部结帐大小时,这种情况比较少见。

换句话说,通过删除远程历史记录(几乎没有几个百分比),你不会节省很多。如果你烦恼中看到许多远程分支机构的条件(但它确实不应该!),你可以简单地删除该远程:

git remote rm upstream 

,你不会看到它或它的分支了。

我非常怀疑你会通过使用浅层克隆(--depth=1)来节省大量空间,但是你会看到很大的缺点 - 浅层克隆无法实现。所以,如果你想做自己的提交,不要使用浅层克隆。

+0

感谢您的见解,在我的情况下,git remote rm上游stuill留给我的历史,我发现一个散步虽然会将它添加为答案 – silkAdmin

1

如果您不想要整个历史记录,请使用git fetchgit clone的设置--depth选项。此外,如果你有兴趣只有一个分支,那么你可以克隆时使用--single-branch选项:

git clone --single-branch --branch=master --depth=1 git://...... 
+0

好的,谢谢,这是很好的知道,但我怎么能摆脱现在的历史? – silkAdmin

+0

只需再次克隆。 –