wic*_*her 10 git github dropbox
首先,我想强调的是,这个问题不是关于在Dropbox上托管我的中央回购,而且我是使用git的新手.我能找到的涉及Dropbox和git的其他问题都没有真正回答我的问题; 他们都是关于使用Dropbox托管您的存储库,或者是否将这两者结合使用是一个"好主意",这两者都不是我在这里问的问题.
我的问题如下:我有两台计算机,每台双启动Windows和Ubuntu(一台笔记本电脑和一台台式机).我有一个位于Dropbox文件夹中的本地git存储库(克隆自github存储库),以便在机器和操作系统之间同步.当我在一台机器/操作系统上进行提交时,它似乎没有将提交状态正确地同步到其他机器.
例如:
在我的Windows桌面上,我对foo.cpp进行了更改.然后我'git commit -a'和'git push',将我的更改推送到github托管的存储库.对文件的更改也会在我的Dropbox文件夹中同步,当我在学校登录我的Windows笔记本电脑时,所有内容都会毫无问题地下载.但是,当我输入'git status'时,它会说:
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: foo.cpp
#
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
但是我已经在我的其他机器上提交了这些更改,表面上是相同的工作目录.尝试从github服务器'git pull'给我的信息是一切都是'已经是最新的'.
我希望Dropbox可以无缝地同步存储库状态.有人熟悉解决这种情况的方法吗?谢谢!
Tod*_*obs 11
不要使用Dropbox与Git进行并发操作.
Dropbox为您提供最终的一致性.使用它作为关键Git操作的后备存储是一个坏主意™.如果你将它用作工作树而不是裸存储库,那就更糟了.你当然可以做到,但你需要了解这种方法的局限性.
如果您希望一次将同步目录用作一个用户的工作树,Dropbox和Spideroak Hive就可以了.只需确保您的文件和文件夹在从其他系统访问之前已完全同步.只要您坚持单用户,单系统工作流程,您就不会遇到麻烦,但您的里程可能会有所不同.
如果您使用多台时间不一致的计算机,也可能会遇到问题.如果你没有运行NTP,那么一台机器的时钟可以在另一台机器的前面或后面.这可能导致同步服务认为新文件实际上是旧文件(反之亦然)的情况.简而言之,任何依赖时间戳的东西都可能容易出错.
如果您使用GNU make或其他依赖它们的工具,时间戳的准确性尤其重要.如果您要使用Dropbox同步工作树,请确保所有将触及该树的系统的计时准确.
| 归档时间: |
|
| 查看次数: |
2861 次 |
| 最近记录: |