16

用了git半年左右,不知道是不是完全用git了。

首先,我一直在尝试使用 dropbox,我觉得如果我可以将它融入我的工作流程中,那就太好了,因为 dropbox 非常方便。

  1. 我有台式机和笔记本电脑。两者都有保管箱。
  2. 我通过执行git init --bare. 然后在我桌面的提交后脚本中,我有一个git push --mirror dropbox.

这样我的桌面和保管箱将始终完全镜像,这是一件好事。

我真正的问题是:我应该如何设置我的笔记本电脑? 我听到了一些建议:

  1. 从我的桌面拉,这样我的笔记本电脑的起源是桌面。
  2. 直接从保管箱中拉出,以便我的笔记本电脑的来源是保管箱。

我一直在做2号,我不知道我是否做对了。我的工作流程包括:

  1. 每次我在笔记本电脑上时,我都会执行一次 git pull(因为笔记本电脑的来源是保管箱,保管箱会自行更新)
  2. 然后,当我从 Dropbox 签出一个分支到本地分支时。
  3. 完成工作后,我承诺。
  4. 这就是我感到困惑的地方:我是否也应该将 --mirror 推送到我的保管箱存储库(我的笔记本电脑的原始存储库)?我在这方面遇到了一些困难:有时保管箱不能很好地同步,等等

目前,在我的笔记本电脑上git branch -r执行后在我的桌面上执行并不会显示我最近的笔记本电脑提交。有人能告诉我为什么吗?git push --mirror origin

我提到直接从我的桌面拉取,因为这样我总是可以初始化拉取,并且我 100% 确信同步已完成。使用 Dropbox,我永远无法 100% 确定更新是否已推送到 Dropbox 服务器

4

1 回答 1

22

如果你想添加一个中间 repo 容器,Dropbox 可以提供:

  1. 您使用git bundle格式:它生成一个只有一个文件的裸仓库(这意味着 Dropbox 更有可能将其正确同步到您的任何计算机:它只是复制一个文件,而不是您不确定的“整个结构”你会得到一切回来)。

  2. 您正在为每个保存使用增量包(同样,每次保存一个文件,很容易从另一侧拉取已完成的内容)。
    在源(笔记本电脑或台式机)和日期之后命名您的增量。
    基本上,您将从任何尚未拉取的 xxx.bundle 中拉取。

  3. 您定期清理所有中间增量包,将其替换为来自任何最新源的完整包

该模型允许:

  • 简单的同步过程(一个或很少的文件)
  • 快速保存过程(使用增量包)
  • 缩放:如果有多个参与者,即如果几个人正在更新同一个分支,您可以通过使用不同的远程名称引用他们的包来隔离他们的贡献(因为每个包都是一个裸仓库,您可以从中拉)。
于 2010-09-03T05:53:22.433 回答