我想知道如何将 git 存储库的副本(存档,而不是克隆)与其远程存储库连接并同步。
背景:
我有一个本地和远程存储库。我使用 git archive 压缩本地存储库,然后将其复制到服务器:
$ git archive --format=tar HEAD | gzip > myarchive.tar.gz
问题:
在服务器上解压存档后,如何再次将服务器的副本与远程存储库连接并同步?
如果我这样做:
$ git init
$ git remote add origin [email protected]/myusername:reponame.git
$ git fetch origin
git status 仍然将所有内容报告为未跟踪。
What should我这样做是为了使我的解压缩文件夹与远程存储库完全同步,这样我就可以简单地将任何未来的提交拉到远程存储库?
非常感谢,
蒂姆
不做存档:做一个git bundle:这将为您提供一个文件,除非您能够从中拉出一旦复制到远程位置。
更多信息请访问 ”如何通过电子邮件向某人发送 git 存储库?"
该捆绑包也可以是增量的(另请参阅“git 包和 .patch 之间的区别").
这意味着您不必复制full存储库,仅自上次备份以来丢失的提交。
我有一个脚本可以访问我所有的裸存储库,并每周进行一次完整备份,每天进行增量备份(如果检测到新提交):sbin/save_bundles.
As 内维克·雷内尔提及在评论中,git archive 只会保存一个修订版本,这将使远程存储库中的任何同步不完整(缺少中间提交)。
另一种方法是tar 全部仓库,但这包含太多内容(包括可能的私人敏感文件或挂钩脚本)。git bundle
是git方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)