如何配置Git以便与Dropbox一起使用?

16

我已经使用git大约半年了,但我不确定我是否充分利用了git。

首先,我一直在尝试使用dropbox,并且如果可以将其纳入我的工作流中,那么它会非常方便。

  1. 我有一台台式机和一台笔记本电脑。两者都安装了dropbox。
  2. 我通过执行git init --bare来初始化我的dropbox repos。然后在我台式机的post-commit脚本中,我使用git push--mirror dropbox命令。

这样,我的台式机和dropbox将始终完全镜像,这是一件好事。

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

  1. 从我的台式机拉取,使得我的笔记本电脑的源是台式机。
  2. 直接从dropbox拉取,使得我的笔记本电脑的源是dropbox。

我一直在使用第二个选项,但我不知道我是否做对了。我的工作流程包括:

  1. 每次我使用笔记本电脑时,我都会进行git pull(因为笔记本电脑的源是dropbox,而dropbox会自动更新)
  2. 然后,我将分支从dropbox检出到本地分支。
  3. 工作完成后,我提交。
  4. 这就是让我困惑的地方:我是否应该也将push --mirror到我的dropbox repos(即我的笔记本电脑的源repos)中?在这个领域我遇到了一些困难:有时dropbox同步不太好,等等。

目前,在我使用git push--mirror origin命令推送后,在我的台式机上执行git branch -r看不到我最近在笔记本电脑上提交的更改。有人可以告诉我原因吗?

我提到从我的桌面直接拉取数据的原因是这样我可以始终初始化拉取并且我非常有信心同步已完成。使用Dropbox时,我无法百分之百确定更新是否已推送到Dropbox服务器。

1个回答

22

如果你想添加一个中间库容器,使用Dropbox是可以的,但需要遵循以下要求:

  1. 使用git bundle格式: 它会生成一个仅有一个文件的裸库(这意味着Dropbox更可能正确同步到你的任何电脑上:只需复制一个文件,而不是从你不确定是否能获得所有内容的“整个结构”)。

  2. 对于每个保存操作都使用增量包(再次强调,每个保存操作只有一个文件,便于在另一台电脑上获取所做的更改)。
    根据源(笔记本或台式机)和日期来命名你的增量包。
    基本上,你会拉取你尚未拉取过的任何 xxx.bundle。

  3. 定期清理所有中间增量包,并用最新源的完整包替换它们。

该模型允许:

  • 简单的同步过程(只有一个或非常少量的文件)
  • 快速的保存过程(使用增量包)
  • 扩展性:如果有多个参与者,即多个人正在更新同一个分支,你可以通过使用不同的远程名称引用他们的增量包来在拉取时隔离其贡献(因为每个增量包都是一个裸库,你可以从中拉取)。

@nevan:感谢您进行各种编辑,那篇文章确实需要它们! - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接