我正在与仅使用Dropbox作为版本控制和协作工具的人合作。我不打算改变他们的行为。另一方面,我是一个上瘾的人,并希望将其用于个人用途。
他们无论如何都没有.git目录而没有在Dropbox中同步它?
由于
答案 0 :(得分:15)
选择性同步似乎是解决方案,但请注意:当您将文件夹标记为已排除时,Dropbox会将其删除。
只需备份.git文件夹,将其标记为Selective Sync排除,dropbox将删除它。当您复制文件夹时,Dropbox不会再次删除它,并且它将缺少Dropbox同步标记(及其子项)。
答案 1 :(得分:9)
根据Dropbox论坛中的this thread,您无法省略/排除文件夹。有Selective Sync,但这也不是你需要的。
因此,现在最好的解决方案是手动同步,例如使用rsync(1)
:
rsync
将此文件夹与Dropbox中的文件夹同步。我建议为此编写一个脚本。--exclude .git
)答案 2 :(得分:8)
我可以看到两个选项:
使用https://stackoverflow.com/a/8603156/112019中提供的提示将.git存储库文件存储在外部位置(如〜/ gitdropbox / myproject.git)和--git-dir和--work-tree。为了简化使用,您还可以在Dropbox synced文件夹中添加.git 文件(不是目录),内容为“gitdir:/path/to/repo.git”,以便您可以正常使用git
使用Dylan R.在https://forums.dropbox.com/topic.php?id=52360#post-387887中描述的方法忽略.git文件夹。然后,您在dropbox系统中保留一个empy .git文件夹,并使用选择性同步功能在本地忽略它,然后初始化存储库。请注意,当您使用选择性同步删除现有的.git文件夹时,它会被dropbox删除,因此如果您有要保留的历史记录,请确保您拥有本地备份。
答案 3 :(得分:1)
我遇到了同样的问题,正如 sunew 已经提到的,您现在可以标记要忽略的文件或文件夹。我在 MacOS 上的 Dropbox 文件夹中使用以下 bash 脚本来查找 Dropbox 文件夹中的所有 .git
文件夹和父 node_modules
文件夹,并将它们标记为忽略:
# for MacOS
# exclude-files-dropbox.sh
find . -type d -name "node_modules" -prune -exec xattr -w com.dropbox.ignored 1 {} \;
find . -type d -name ".git" -prune -exec xattr -w com.dropbox.ignored 1 {} \;
以下应该适用于 Linux:
# for Linux
# exclude-files-dropbox.sh
find . -type d -name "node_modules" -prune -exec attr -s com.dropbox.ignored -V 1 {} \;
find . -type d -name ".git" -prune -exec attr -s com.dropbox.ignored -V 1 {} \;
答案 4 :(得分:0)
2020更新:现在,保管箱具有用于标记要忽略的文件夹或文件的选项,如下所述:https://help.dropbox.com/files-folders/restore-delete/ignored-files
attr -s com.dropbox.ignored -V 1 myfoldername