ブログのテーマががっつり偏ってきた気がしますが、自分の興味関心のままに書いているので大目に見てくださいまし。
なお、Mac 編はありませんのであしからず1。
やりたいこと
- Windows オンリーなネットワーク環境で
- インターネットへはアクセスせずに
- Git とファイルサーバーだけで
- 分散バージョン管理システムを
簡単に作ってみましょう。
想定読者
- ソースコードのバックアップに不満がある
- プログラミングを Windows で行なっている
- 非公開であっても、ソースコードを他者のサーバーやサービスに保存したくない、できない
- Git を使ったことがある、もしくは Git を使ってみる気がある
事前準備
まず、ファイルを読み書きできるファイルサーバーを用意しましょう。今回は Windows なので共有フォルダってやつですね2。
次に、SourceTree をインストール、起動し、初期設定しておきましょう。Git 本体のインストールも行なってくれるので楽ちんです。
詳しい手順は -> Gitアプリの決定版!SourceTree for windowsがやってきた! ヤァ!ヤァ!ヤァ! - damelog を。今回の手順では使用しないので、「鍵を作る」の部分は飛ばしてしまいましょう。
分散バージョン管理システムを簡単に作ってみる手順
- パソコン上に Git リポジトリを作る
- リポジトリ内のファイルをコミットする
- パソコン上のリポジトリをファイルサーバーにクローンする
大きく分けると以上の3ステップです。順番に説明していきます。
パソコン上にリポジトリを作る
↑Git でバージョン管理するフォルダを作って3
↑SourceTree で Clone/New ボタンを押して出てくるウィンドウからそのフォルダを追加すると
↑Git リポジトリができあがります。SourceTree だとこんな表示
↑出来上がった Git リポジトリをエクスプローラーで表示させたところ。 .git というフォルダができていれば OK 。
リポジトリ内のファイルをコミットする
↑フォルダ内にバージョン管理したいファイルを作って
↑Add ボタンを使ってステージングエリアに追加して
↑Commit ボタンでコミットっ!!
↑変更の履歴が残り、めでたくコミット完了です。
パソコン上のリポジトリをファイルサーバーにクローンする
↑SourceTree 画面右上の歯車アイコンをクリック、ターミナルを起動して
1 2 |
|
↑Git のコマンドを入力していきます。コマンドの内容を説明しておくと
- パソコン上に作成したリポジトリをサーバー上に複写
- パソコン上にあるリポジトリの分散先として、サーバー上に複写されたリポジトリを追加
となります。注意点として、まずはフォルダのパス。今回の例だと C:\easy_dvcs\
ですが、これは /c/easy_dvcs
と読み替えるようにしてください。日本語含むとうまくいかないこともあるので気をつけましょう。
また、パスの末尾が .git
となっていますが、これは Git のお作法なのでそのようにしておきましょう。<フォルダ>.git
という名前のファイルが作られるわけではないのでお間違いなく。
続いて、ちゃんと追加できてるか確認しましょう。
1 2 |
|
これらのコマンドを実行して以下のように表示されれば
1 2 3 4 5 6 7 8 9 10 11 12 |
|
完成!!!
お疲れさまでした。あとはサルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログなど眺めつつ、プッシュしたりリセットしたりしてみましょう。
つまづきやすいところ
フォルダのアドレスに円マーク(\)
文字化けの根源である Windows の円マーク(\)ですが、 Unix/Linux フレンドリーな Git でもそこが問題になります。SourceTree の開発元も認識はしているようですが、Git の問題でもあるので進展はなさそう…
とりあえず、円マーク(\)はスラッシュ(/)で置き換えましょう。リポジトリに追加したファイルが、ファイルサーバー上に見当たらない
Git のリモートリポジトリにはファイルの実体のみが圧縮され保存されています。サーバーのディスクスペースを節約する賢いやり方です。
コミットし、プッシュしたはずのファイルがファイルサーバー上に見当たらず、「 Git つかえねー」と早とちりしたそこのあなた!git clone //<サーバーの>/<リポジトリ>/<フォルダ>.git
して確認してみましょう。
蛇足
↑サルでもわかるGit入門 つらい、つらいのぅ
データの管理は一切合切こんな状態、その他諸般の事情により「GitHub でソーシャルコーディングヽ(・∀・ )ノ キャッ キャッ」 などということが夢のまた夢状態…
泣きを見るのは自分なのでソースコードだけは Git でバージョン管理してきましたが、データのありかは開発機のハードディスク。なんとか角を立てずにこのリポジトリを分散型に持っていきたいっ!!
ということで調べてみたら思ったより簡単に実現したのでちょっと拍子抜けしておりますが、これでこれからはゆっくり寝られそうです。ありがとう Git!!
参考
Git - プロトコル
Pro Git 本でも、Git でリポジトリのリモートとしてファイルサーバーを使用する方法が解説されてます。Using Dropbox to Share Git Repositories
Dropbox を Git リポジトリのリモートとする方法が説明されてます。