icloudをgit倉庫にする

1740 ワード

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ウェアハウス(svnのリモートウェアハウスコンセプトに相当するbare)を作成する以上、~/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ウェアハウスサーバである以上,実際のワークスペースを格納する必要はなく,ワークスペースを生成できるファイルを格納するだけでよい.gitにとって、.gitディレクトリこそ倉庫の核心です.したがって、--bareは.gitディレクトリのみを格納することに相当する.
サーバのXXXX.gitディレクトリとローカルの.gitディレクトリを表示すると、両方の構造がほぼ一致していることがわかります.(正規の言い方ではそうではありません)
リファレンス
http://winterbe.com/posts/2014/11/27/setup-icloud-git-repository/