Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将git存储库的副本(存档,而不是克隆)连接到其远程存储库?_Git_Github_Archive - Fatal编程技术网

如何将git存储库的副本(存档,而不是克隆)连接到其远程存储库?

如何将git存储库的副本(存档,而不是克隆)连接到其远程存储库?,git,github,archive,Git,Github,Archive,我想知道如何将git repo的副本(存档,而不是克隆)与其远程repo连接并同步 背景: 我有一个本地和远程存储库。我使用git archive压缩本地存储库,然后将其复制到服务器: $ git archive --format=tar HEAD | gzip > myarchive.tar.gz 问题: 解压服务器上的存档后,如何再次将服务器副本与远程存储库连接并同步 如果我这样做: $ git init $ git remote add origin git@github.com/

我想知道如何将git repo的副本(存档,而不是克隆)与其远程repo连接并同步

背景: 我有一个本地和远程存储库。我使用git archive压缩本地存储库,然后将其复制到服务器:

$ git archive --format=tar HEAD | gzip > myarchive.tar.gz
问题: 解压服务器上的存档后,如何再次将服务器副本与远程存储库连接并同步

如果我这样做:

$ git init
$ git remote add origin git@github.com/myusername:reponame.git
$ git fetch origin
git状态仍然报告所有未跟踪的内容

我应该怎么做才能使我的解压文件夹与远程repo完全同步,这样我就可以简单地将任何未来的提交拉到远程repo

非常感谢,,
Tim

不要做归档:做一个:这会给你一个文件,除非你在远程位置复制后能够从中提取

有关详细信息,请参阅“”

该捆绑包也可以是增量的(另请参见“”)。
这意味着您不必复制完整的回购协议,只需复制自上次备份以来丢失的提交

我有一个脚本,它可以访问我所有的裸机回购,每周进行一次完整备份,每天进行增量备份(如果检测到新的提交):


如前所述,git archive只保存一个修订版,这将使远程repo中的任何同步都不完整(缺少中间提交)


另一种方法是删除,但包含太多(包括可能的私有敏感文件或钩子脚本)
git bundle
是git的方式。

应该提到的是,
archive
在这里不合适的原因是它只打包了一个版本的内容,没有任何历史信息——如果它应该重新集成到git repo中,这些信息是很重要的。@Nevkrehnel确实如此。我已经在答案中加入了你的评论,以提高可视性。太好了!非常感谢,@VonC和nevkrehnel。我很感谢你的解释和链接。你好,蒂姆