博客首页|TW首页| 同事录|业界社区

坚果云博客

我的 Blog博客

你的github-通过坚果云管理您的代码

这几天不少”果仁”(坚果用户)通过各种渠道咨询如何通过坚果云同步和备份代码. 目前采用的方式通常是将代码直接放在坚果云中,  每次修改自动同步,  这样做有几个问题:

  • 坚果云的版本历史是自动保存的, 不能添加版本信息. 对于代码而言, 不方便找回和比对历史代码;
  • 专业的代码管理工具(Git/Hg/SVN)能够很容易查看用户对所有代码进行的每次修改, 易于分析bug的来源, 而坚果云不能提供这样的功能
  • 如果将eclipse等IDE的workspace直接放于坚果云中, 假如因为同步不及时造成冲突, 因为文件众多而且涉及到很多IDE相关文件, 可能导致IDE无法正常打开.
  • 编译, 重构等自动化工作引发的同步, 容易导致大量的带宽占用

幸运的是, 我们推荐用如下的方法利用坚果云同步代码, 可以完全保留代码管理工具的长处, 同时利用坚果云提供的自动同步和备份功能.

假设你用的是Git, 当前的开发目录叫”~/projects”, 而坚果云路径为”~/Nutstore”, 进行如下操作:

  • ~/projects $>git init            (注释: 初始化git repository)
  • ~/projects $> git add .
  • ~/projects $> git commit -m “first commit”
  • ~/projects $> mkdir -p ~/Nutstore/git/project   (注释: 在坚果云中创建bare git repository)
  • ~/projects $> cd ~/Nutstore/git/project
  • ~/Nutstore/git/project $> git init –bare
  • ~/Nutstore/git/project $> cd ~/project (注释: push代码到坚果云中)
  • ~/project $> git remote add orig ~/Nutstore/git/project
  • ~/project $> git push orig master

这样在所有电脑上都可以正常的进行git pull & git push, 以后每次修改代码只需commit, 然后将代码push到~/Nutstore/git/project即可享受到git+坚果云的所有好处. 如下:

  • ~/project $> git push orig master

假如你用的hg/Mercurial, 按照如下流程操作:

  • ~/projects $> hg init            (注释: 初始化hg repository)
  • ~/projects $> hg add
  • ~/projects $> hg commit -m “first commit”
  • ~/projects $> mkdir -p ~/Nutstore/hg/project   (注释: 在坚果云中创建bare hg repository)
  • ~/projects $> cd ~/Nutstore/hg/project
  • ~/Nutstore/hg/project $> hg init
  • ~/Nutstore/hg/project $> cd ~/project (注释: push代码到坚果云中)
  • ~/project $> echo “[paths]\ndefault = ~/Nutstore/hg/project\n” > .hg/hgrc
  • ~/project $> hg push

这样在所有电脑上都可以正常进行 hg push & hg pull, 以后每次修改代码只需commit, 然后将代码push到~/Nutstore/hg/project即可享受到hg+坚果云的所有好处. 如下:

  • ~/project $>hg push

备注:

如果你想了解git和hg的用法, 下面是很好的入门材料.

git: http://book.git-scm.com/

hg: http://hginit.com/

浏览数: 次 星期六, 02月 18th, 2012 未分类

7条评论 to 你的github-通过坚果云管理您的代码

  1. git一直弄不到耶- -

  2. 匿名 on 02月 21st, 2012
  3. ubuntu下git一直报does not appear to be a git repository的错误,纠结中

  4. pokka on 02月 21st, 2012
  5. 这样做能够避免冲突?万一两次 push 间隔时间非常短呢,或者多个人同时 push 呢?
    这种方案确实比直接同步要好很多,可是一旦发生同步冲突处理起来也要麻烦很多。

  6. tolbkni on 02月 23rd, 2012
  7. 同一台电脑, 两次push间隔时间很短是不会造成冲突的.

    只要不在两台电脑上同时push, 应该不会有冲突. 假如参与代码协同的人数很少, 可能造成冲突的时间窗口很小. 即使不幸出现冲突. 但是冲突的文件夹处于坚果铺子中, 而用户的工作目录不会有冲突, 只需删除冲突的代码文件夹, 然后将用户工作目录重新push就可以了.

  8. admin on 02月 23rd, 2012
  9. 只需删除冲突的代码文件夹?这个“只需”之前,最重要的一步是“聊”!出现冲突没有不问清楚上来就删文件的……所以Sharepoint这类协同办公软件的文件夹窗口都自带聊天框。

  10. 醉仙望月 on 02月 24th, 2012
  11. 很强大!

  12. Trace on 03月 17th, 2012
  13. 别尝试了。本来就不是用来干这事的,多人同时开发这种需求还是老老实实用版本控制工具吧。

  14. coneagoe on 04月 18th, 2012

发表评论