欺骗Git,慢速互联网连接

时间:2013-11-08 01:32:34

标签: git github

我有一点问题,我需要欺骗git。

基本上我有一个回购,我与其他程序员分享,他们在互联网很慢的地方。 这个回购有很多图像,很少改变。 无论如何所以我和其他程序员分享了这个回购,他下载了它,之后发生了一些事情,我不得不关闭回购。 我在repo上做了一些小的代码更改并再次上传,我希望其他程序员能够处理它。现在他有一个repo的副本,但有些文件不同步,但图像是相同的(95%的回购大小是图像)。他的本地副本没有任何git符号。 我怎么能让他欺骗git认为他只有一个旧版本的远程仓库,所以他只能获得代码更改但不必再次下载整个仓库?

澄清:

新的repo与旧的repo不同,它的代码库相同,但不是相同的提交对象或哈希值。

2 个答案:

答案 0 :(得分:2)

如果内容相同,那么他所需要的只是提交对象。这很容易。

mkdir for-my-buddy
git rev-list --all \
        | git pack-objects for-my-buddy/pack

通过电子邮件向他发送该目录的内容,让他将这些内容放入.git / objects / pack,git branch -m / git标签-f他的参考文件,你就完成了。

编辑:您可以通过

安全地进行实验并且更便宜
git clone -s path/to/real/repo path/to/playground/repo

在操场上做所有的工作。当你满意时,推动工作。

答案 1 :(得分:0)

最简单的方法是用你的目录rsync你的目录。 git repo只是一堆文件 - 它没有任何保持状态的运行时逻辑。

如果repos在技术上完全不同,并且您不关心旧repo的历史数据,请告诉他在与您的rsyncing之前删除.git目录。如果您关心旧仓库的历史记录,请告诉他备份他的目录,然后删除.git目录,然后再将其与您的目录同步。