【问题标题】:Git with Dropbox shared folderGit 与 Dropbox 共享文件夹
【发布时间】:2018-01-09 18:45:34
【问题描述】:

我和一位同事有一个共享的 Dropbox 文件夹,其中包含代码、输出文件等。我们都在那里编辑文件,本地代码使用特定于(相对)文件夹的文件路径运行。其他用户(项目参与者)也可以访问它。

现在,我们想使用 Git 进行版本控制。所以我们在 Github 上初始化了一个仓库。但是,由于本地文件夹是共享的,因此我对其所做的任何更改(在提交和推送之前)都将通过 Dropbox 同步到她的本地文​​件夹。这导致了许多冲突,并完全违背了 Git 的目的。此外,其他项目参与者不使用 Git,因此需要具有项目当前结构的 Dropbox-ready 文件夹。

问题:是否有工作流程可以完成这项工作?我们都需要有一个本地来源的 Git 框架,但仍保持与当前存储库状态同步的 Dropbox 文件夹。

我尝试过git-remote-dropbox、此answer 和其他方法均未成功。

【问题讨论】:

  • 只需将 Dropbox 从您的工作流程中排除,就是这样。你在你的电脑上工作,你的同事在她身上工作。每当下一部分更改准备好时,它就会交付给 GitHub。非贡献者不需要了解 git,他们只需通过绿色大按钮从 GitHub 下载最新版本的 zip 存档就可以了,不需要很多技能。

标签: git github cloud dropbox


【解决方案1】:

首先:git-remote-dropbox 不是有效的 git 命令。我不知道你认为你在哪里找到了这个,但它并不存在。

此外,我真的不能理解您的用例:为什么需要保管箱?如果我猜对了,您想使用 2 个单独的 git repos 进行“版本控制”并通过 Dropbox 进行同步?为什么不能只在 GitHub(或类似的)上托管一个 repo 并删除 Dropbox?

git 的主要目的之一是在与不同版本和编辑同步时有效地协同工作并避免/解决问题。通过其他提供商(如 Dropbox)同步它可能是可能的,但它效率低下并且会导致像您遇到的错误。

请重新考虑您的基础架构。如果您真的只是使用 Dropbox 通过互联网同步,那么我强烈建议您访问 GitHub 以免费存储和管理代码(也有免费的替代方案)。

顺便说一句:我不知道你对 git 有多少经验,但是有一个分支系统可以用来保持存储库的当前状态,同时也可以在不同的分支上工作。更多关于here。这是另一个good guide

编辑:就像您指出的那样,git-remote-dropbox 是一个外部工具。我只是简单地看了一下github项目的readme部分,发现如下:

问:为什么我不应该将我的 Git 存储库保存在 Dropbox 中并让客户端同步它?

A:网上好像有很多文章推荐这个 作为一个很好的工作流程。然而,这不是一个好主意!桌面 客户端不知道 Git 如何管理它的磁盘格式,所以如果 同步中存在并发更改或延迟,有可能 存在导致 Git 存储库损坏的冲突。

【讨论】:

  • 谢谢。首先,git-remote-dropbox 是 Git 之外的一个工具:github.com/anishathalye/git-remote-dropbox。其次,我们项目中的其他用户不使用 Github,因此他们只是想要一个支持 Dropbox 的文件夹版本来运行代码。
  • 发布答案后,我想到了类似外部工具的东西。感谢您解释您的上下文。我的想法是:在服务器上构建一个简单的脚本,将存储库主分支的最新状态复制到一个保管箱文件夹中。我相信你可以通过一个简单的batch 文件来做到这一点,在linux 上使用cp 命令,在Windows 上使用xcopy。您可以每隔几秒钟运行一次此脚本,检查存储库中是否有更改,或者您可以使用webhook 来触发脚本。希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-24
  • 1970-01-01
相关资源
最近更新 更多