把icloud打造成git仓库

icloud并不能直接作为远程git仓库使用,因为icloud上的文件并不可以直接访问,但可以作为本地git仓库使用。

大致思路是这样:
本地目录 《- git -》 本地git仓库(icloud目录) 《- icloud -》 icloud备份服务器

Step1

$ cd ~
$ ln -s Library/Mobile\ Documents/com~apple~CloudDocs/ icloud
$ cd icloud

创建icloud目录本地的快捷访问路径(软链接)

Step2

$ cd ~/icloud
$ mkdir repos && cd $_
$ git init --bare demo.git

在icloud中创建一个共享的git仓库(--bare相当于svn中的远程仓库概念)
以上,访问~/icloud/repos/demo.git就相当于访问了远程git仓库。

Step3

$ cd ~
$ mkdir localDemo
$ cd localDemo
$ echo ".DS_Store" > .gitignore
$ echo "Demo" > README

$ git init
$ git add .
$ git commit -m "initial commit"
$ git remote add origin ~/icloud/repos/demo.git
$ git push -u origin master

在任意目录下,初始化本地的git项目,配置远程git仓库,然后把本地的所有分支push到远程仓库。

Step4

$ cd ~
$ git clone ~/icloud/repos/demo.git

从远程仓库中拉取项目。

总结

类似本地svn仓库服务器一样,其实是搭建了本地的git仓库服务器。
由于是本地访问,所以通过本地路径/project.git来访问。
因为本地仓库是建立在icloud自动备份的目录下,所以icloud会自动备份这个git仓库服务器。

如果本地机器有对外的IP,那么这个过程相当于建立了远程的git服务器,并对服务器上的git仓库进行了icloud的备份。

关于git init --bare作用

个人理解:
--bare就是建立一个git仓库服务器。既然是git仓库服务器,就没必要存储实际的workspace,只需要存储能生成workspace的文件即可。而对于git而言,.git目录才是仓库的核心。所以,--bare相当于只存储.git目录。

查看服务器中的XXXX.git目录和本地的.git目录,就能发现两者结构几乎一致。(正规的说法并不是这样)

参考

http://winterbe.com/posts/2014/11/27/setup-icloud-git-repository/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,915评论 18 139
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,719评论 9 163
  • 关于马井桥小村的故事,我写过很多,真心希望生我,养我的这片土地,有人书写,恰好我出现了。 那就让我来书写这篇土地上...
    大荷08阅读 510评论 0 0
  • 袁枚的 《 杂素菜单 》 里有芋羹,芋煨白菜, 《 点心单 》 里有芋粉团。 芋艿俗称毛芋,民间又称芋头、芋儿,起...
    木子罗阅读 794评论 1 15