OneDrive同步文件夹中的Git存储库

时间:2014-09-09 00:44:39

标签: git onedrive

我正在尝试创建一个位于OneDrive同步文件夹中的git存储库,但我遇到了一个问题。

我使用OneDrive(正式的MS SkyDrive)通过"云"来同步我的多个设备之间的文件夹。在我的开发机器(Win 7 64)上,OneDrive文件夹位于C:\ Users \ myusername \ OneDrive下。

我在该目录中创建了一个\ git子文件夹,并为该文件夹中的代码(foo.git)创建了一个git存储库。

在同一台机器上,我可以将该存储库克隆到另一个文件夹(非OneDrive同步)并推送和拉取更改。

然而,在我的另一台机器(Win 8.1 64)上,当我尝试克隆存储库时,它与OneDrive同步(看起来像C:\ Users \ myusername \ OneDrive \ git \ foo.git中的所有内容) ),我得到一个"这不是一个有效的git存储库"错误。

\ git文件夹内容"应该"两台机器之间是相同的,因为它们是同步的。我唯一能想到的是,我的git存储库中可能存在一些未同步的隐藏文件夹/文件。 OneDrive应该用于同步包括隐藏文件和文件夹在内的所有内容(据我所知)。

远程git存储库中是否有隐藏文件夹或文件?

我不确定为什么这不起作用,我读过其他使用OneDrive存储git远程存储库而没有问题的人。也许它的问题是一台机器是Win 7而另一台机器是Win 8.1?

由于我已经用尽了googlingfu试图找到解决方案,有没有人对我可能做错了什么有任何建议或见解?

7 个答案:

答案 0 :(得分:24)

OneDrive同步客户端现在支持同步包含其中的句点字符的文件夹。'这应该使您能够自动开始同步这些git存储库,只要它们位于OneDrive文件夹中。

获取OneDrive Client的最新版本,您已经完成了设置。

答案 1 :(得分:12)

OneDrive(尚未!)支持以句点开头的同步文件,例如保存git元数据的.git文件夹。

因此,您没有看到这些项目通过OneDrive进行同步。

(仅在旧版OneDrive客户端的情况下,我已经创建了一个反映当前版本功能的新答案8/2015)

答案 2 :(得分:1)

截至2017年6月27日,2016版(Build 17.3.6917.0607)

OneDrive for business将支持同步dotfiles(和dotdirectories) 但是,OneDrive是一个非常糟糕的解决方案,除非您添加提交挂钩以排除文件:     https://support.microsoft.com/en-us/help/3125202/restrictions-and-limitations-when-you-sync-files-and-folders

另外,我不知道在竞争条件下情况如何。如果有多个提交者(包括自动化的东西),它可能不安全。

答案 3 :(得分:0)

手动创建名称为“.git”的文件夹,并且onedrive服务器上会出现“.git”。

答案 4 :(得分:0)

到目前为止,从office.com手动进行同步并耐心地合并任何冲突对我来说都是有效的。下一个测试将是看看它在一天当中的效果如何。我知道oneDrive并不是理想的解决方案,但是对于隐私而言,有时它是一种获得类似于GitHub的功能以在工作区之间来回传递文件​​的简便方法。

答案 5 :(得分:0)

我没有回答这个问题,因为我认为没有直接的答案。但是用例很有说服力。 假设我想将正在处理的所有项目都保存在OneDrive同步文件夹内的项目文件夹中,并将所有Office magic都作为附加值。假设它是一个Web项目。我会

ui

在Projekt B的文件夹中,我想同步除htdocs(也许还有Backup)文件夹之外的所有文件夹,因为它已经在某种版本控制(git)下与Git服务器(BitBucket)同步了。对我来说,这是非常普遍的事情,我还没有想出令人满意的解决方案。当然,我可以将htdocs文件夹(和“备份”)移到OneDrive树之外的某个位置,但这会使布局变脆,最终无法完成项目并对其进行归档。 我想到的一种解决方案是将Projects移到OneDrive之外,将要同步的内容添加到单独的文件夹中,并将该文件夹作为符号链接添加到OneDrive文件夹结构中。

答案 6 :(得分:-3)

我使用DropBox和OneDrive也一样。

文件夹完全同步并且其他客户端完全了解更改需要一些时间。 如果某些东西缺失,那么git会按预期的那样抱怨。

手动强制 两个的同步解决了这个问题。

我怀疑它在Windows上实现(或由Windows使用)的方式会导致它。 Ubuntu上的Dropbox没有显示问题。 (除非我匆匆忙忙地预计我的另一个盒子会在3秒后完全同步; - ))

我放弃了DB& OD解决方案。 最后我决定在github上开帐户。更方便。

在盒子上安装GitLab或Gitblit(在Win上使用Tomcat)之类的东西对私人回购也有帮助。