プライベートなリポジトリホスティングをしたい
GitHubでの問題点
Gitリポジトリホスティングサービスといえば代表的なのはGitHubでしょうか?使う人も多いと思いますが、GitHubは無料使用だとリポジトリが公開されるパブリック形式になってしまいます。
趣味のプロジェクトや積極的に公開したいプロジェクトなどならパブリックでも構わないのですが、仕事の案件となるとGitHubを使うのは躊躇せざるを得ないです。
もちろん有料使用であればプライベートにできるのですが、課金するまでもないくらいにしか仕事がない@MINOは、できれば無料でプライベートなリポジトリホスティングが出来ないかと思っていましました。
Googleドライブの利用
いくつかそういったサービスもあるようですが、身近に無料で使えるストレージがあることを思い出いしました。
Googleドライブです。
昨今ならほとんどの人がGoogleアカウントを持っているだろうし、使うのに障壁が低いクラウドストレージだと思います。
Googleドライブにリポジトリを置ければ、これはプライベートリポジトリホスティングと言えるのないでしょうか。フォルダの共有を行えば、複数人で使える共有リポジトリ置場としても使えそうです。さっそく@MINOはGoogleドライブにリポジトリを置くことにしました。
注意点
@MINOはGitをNetBeansIDEから使っていますので、コマンドラインからの操作が説明ができないです。一応補足でコマンドラインの説明はするが間違っている可能性もあるので注意してほしいです。 もしコマンドラインからの操作をしたい場合はこのページを参考にしてもらうといいかもしれないです。
Googleドライブにリポジトリを置く方法
NetBeansIDEでの操作順序
NetBeansIDEからGoogleドライブにリポジトリを置くには手順が重要なようです。以下の様な手順になる
- Googleドライブでリポジトリを置く為のフォルダを作っておく
- Googleドライブ上に裸のリポジトリを作る
- パソコン(以下ローカル)にリポジトリを作り、プロジェクトのファイルをコミットする
- Googleドライブ上リポジトリにローカルリポジトリのリモートリポジトリに登録してプッシュする
それではNetBeansIDEでGoogleドライブでリポジトリを置く流れを説明したいと思います。
Googleドライブの準備
1.当たり前ですが、Googleドライブの使用には、Googleのアカウントが必要なので、無い場合は取得します。 もしGoogleドライブのクライアントをインストールしていないようだったらインストールしてほしいです。
クライアントはGoogleドライブのページに行き、設定ら「Googleドライブのダウンロード」でダウンロードできます。
Googleドライブの準備ができたら、任意の場所にGitリポジトリを置く為のフォルダを作っておきましょう。(フォルダをつくらなくてもリポジトリは置けるが整理が大変になる)
NetBeansIDEの準備
2.まだNetBeansIDEを使ったことの無い人はインストールしてほしいです。ダウンロードはこちらから。
NetBeans IDE ダウンロードバンドルは「すべて」をダウンロードすると最初から機能がもりだくさんなのでお勧め。
インストールに関してはこちらのページを参照のこと。
インストールが済んだら起動して、NetBeansIDEのメニューの「ツール」→「Git」→「リポジトリ・ブラウザ」でリポジトリ・ブラウザを出しておきましょう。
3.テスト用にプロジェクトを新規します。 テストなのでどのプロジェクトでも構わないですが、説明ではHTML5アプリケーションで進めたいと思います。
Googleドライブに裸のリポジトリを作る
4.新規プロジェクトを作ったら、本題であるGitに関しての操作です。プロジェクトを選択して、右クリックメニューから「バージョン管理」→「Gitリポジトリの初期化」をクリックします。
5.どこにリポジトリを作るか聞かれるので、Googleドライブであらかじめ作っておいたリポジトリ用のフォルダを指定します。
6.これでGoogleドライブ上に裸のリポジトリが出来た。コマンドラインではカレントディレクトリがgoogleドライブのリポジトリ用フォルダでのgit init –bareに相当します。
ローカルにリポジトリを作る
7.今度はローカルにリポジトリを作ます。 プロジェクトを選択して、右クリックメニューから「バージョン管理」→「Gitリポジトリの初期化」をクリックします。
8.デフォルトではプロジェクトファイルが保存されているフォルダが指定されているので今回は、デフォルトのままリポジトリを作ることにします。 もちろん任意のフォルダを指定することは可能。
コマンドラインではカレントディレクトリが任意のローカルディレクトリでのgit initに相当
プロジェクトファイルをコミット
9.ローカルに作ったリポジトリにファイルをコミットします。 ダイアログがでるので、コミットメッセージを記入して、「HEADと作業ツリー間の変更」ボタンを有効にしておきます。今回はindex.htmlだけなので、ちゃんと選択されているか確認して、コミットボタンをクリック。
上手くいけば、ローカルリポジトリのローカルにMasterブランチが出来ているはずです。
コマンドラインではgit commit index.html -m “Initial commit.”に相当します。
Googleドライブに作ったリポジトリをリモートリポジトリにする
10.これでローカルリポジトリに命が宿ます。 今度は最初に作ったGoogleドライブリポジトリをリモートリポジトリにする為の操作を行っていく。 ローカルリポジトリを選択して、右クリック「リモート」→「プッシュ」を選択。
11.リモートリポジトリのダイアログが出ててきます。 デフォルトで「Gitリポジトリの場所を指定」にチェックが付いていて、先に作っていたGoogleドライブのGitフォルダが指定されているはずです。
もし指定されていませんでしました。ら、GoogleドライブのGitフォルダのパスを指定します。 リモート名はoriginのままでoK。
12.次へを押すとブランチの選択になりますが、表示されているブランチすべてにチェックします。 ここではmasterブランチしかないので、表示されているのは一つのはずです。
13.ローカル参照更新ダイアログでも表示されているブランチすべてにチェックします。
終了ボタンを押すと、ローカルリポジトリの内容がGoogleドライブ上のリポジトリーにプッシュされ、同期します。
コマンドラインではgit remote add origin file://[gooogleドライブに作ったgitフォルダのパス]、git push origin masterに相当します。
14.これでGoogleドライブ上のリポジトリがローカルリポジトリのリモートリポジトリになりました。
上手くいくと、GoogleDrive上のリポジトリ(リモートリポジトリ)のローカルにMaster-[ハッシュ値]が表示されているはずです。
また、リポジトリブラウザのローカルリポジトリのローカルにMaster(“origin/Masterと同期”)-[ハッシュ値]と表示され、リモートにorigin/Master-[ハッシュ値]が表示されているはずです。
Masterのハッシュ値はすべて同じになっているはずです。
あとはローカルリポジトリで作業を進めて、適時プッシュをすればローカルリポジトリとGoogleドライブ上のリポジトリは同じ内容になります。
ローカルにもクラウドストレージにもリポジトリがある事でプロジェクトのバックアップとしても安心です。
共有リポジトリとして
もし誰かとリポジトリを共有したいのであれば、googleドライブに作ったgitフォルダを共有設定にして、クローンをとってもらえばいいです。
セキュリティに関してはGoogleドライブのセキュリティに準拠することになるだろうから、@MINOは詳しく語れないです。ドライブのマニュアルを熟読することをお勧めします。
まとめ
実はNetBeansIDEからGoogleドライブにリポジトリを設置するには骨が折れた。手順を誤ると機能しなかったからです。なんどか手順をやり直してやっと機能させられるようになりました。
特に先にGoogleドライブ上にリポジトリを作らないと、ローカルにリポジトリを作った後だと作りようがなくなってしまいます。この辺がコマンドラインでの操作と比べると窮屈に感じてしまいます。
Gitサーバを建てたりする人もいるようですが、@MINOには少し難しいです。
Googleドライブならとても簡単に運用できます。 Googleドライブは無料では容量が15GBで、@MINOはそれで困ったことはないですが、もしもっとほしい場合には追加(有料だが)することもできます。
ネットで探してもGoogleドライブにリポジトリを置こうとする情報はあんまりなかった。googleドライブの利用規約の件もありますので、嫌厭されているのでしょうか?
基本的には操作は同じなので、Googleドライブが嫌な人はDropBoxやOnedriveで構築してもいいかもしれないです。
ただDropBoxやOnedriveはアップロードされたファイルの所有権は主張してないですが、使用権はどうなんでしょう。Googleドライブも所有権に関しては主張していないです。