Gitでバージョン管理

最初の一時期はCVSでやってて、今時はSVNでしょみたいな話を聞いてからSVNで、でも色々面倒なんだよなこれ…と思って最近では滅多に使ってなかったバージョン管理。
他に仕事で使うのはflaやswfといったバイナリ形式で、差分を見ても変更点がわかりにくいし、まるごと書き換わってたりするから、日付ごとのファイルコピーという原始的なバージョン管理になっていた。
今時はGitでしょ…というのも最近耳にしてはいたんだけど、Windowsでのインストールがめんどくさかったし、いまいちSVNより便利という感じもなかったのでアンインストール。

ただいくらなんでもこの方法は原始的すぎるし、SublimeText関連でGithubを使うことが多かったから、もう一回ちゃんとGitを使ってみようと思って再挑戦した結果、以前試した時よりバージョンアップを重ねて、非常に良い感じになっていた。

まずSVNの何がめんどくさかったかというと、最初の最初、ここにあるファイルをバージョン管理の対象にしますよ…という設定。
だいたい管理しようと思った時点では試作ファイルがいくつかある状態で、

1・リポジトリの保存場所を決めて作成
2・必要なファイル(フォルダ)をリポジトリに登録する
3・登録したファイル(フォルダ)を削除
4・リポジトリから最新データ(つまり2で登録したファイル)を読み込む

1と2はわかる。
どう考えても3と4が要らない。
せっかくあるファイルを消して、全く同じファイルを作りなおして、意味がわからない。

なんか自分の使い方間違ってんのかなと思って調べたけど、どのサイトでもそういうものだと書いてある。

あと、最初に本番用、テスト用などいくつかフォルダ作っておくと、後々便利になるというのも聞いた。
これもわかる。わかるんだけど、それ後になってからやっちゃ駄目?と思う。
作り始めた段階でどれぐらいの管理が必要になるかわからない物もあるわけで、3分後にこれは駄目だと廃棄することもあれば、年単位で使い込む可能性もある。

以上の点から、どう考えても大掛かりな管理が必要な場合だけSVNで管理することになる、どう考えても…というケースがこの所あまりなく、結果使ってなかった。
多分ネット上に1つリポジトリを作ってそこに大人数でアクセスするという前提条件が、自分の作業用に使うという要求とか見合ってなかった。

こういっためんどくさい点がGitでは解決している。
まずリポジトリの登録。

1・エクスプローラでフォルダを右クリックして、その場にリポジトリを作成
2・ファイルをリポジトリに追加する

不毛だった3と4が無くなった上に、別の場所にリポジトリを作る必要もなくなった。
作業フォルダにある.gitフォルダ1つだけ。
全体をUSBメモリにでもコピーすれば作業履歴ごと持ち運び出来る。
SVNの時は.svnはサブフォルダごと出来たから、うっかりそのままコピーして.svnまみれにした事が何度かある。
最近は.svnフォルダに1個出来るようになったらしいけど、持ち運び困難なのは変わらない。

用途ごとのフォルダも色々作ったりしなくていい。
ブランチやタグが簡単に作れるから、最初から使いやすい形を考えておかなくていいというか、むしろやらない方がよさそう。
SVNと違って特定のフォルダだけ別で管理するような事は出来ないから、かえって使いにくくなるはず。

他に使ってて便利だと感じるのが、ファイルをコピーしたり移動したりというのを、自動的に判断してくれること。
それどころかファイルの一部を切り出して新しいファイルを作ったようなケースまで想定してある。
従来のファイル名にべったり張り付いたシステムだと、ファイル名を変えたり、昔あったファイル名で新しいファイルを作ったりすると、色々と納得いかない状態になっていた。
自動判断が間違って思った通りのログになってない可能性はあるけど、データが壊れる程のことではないし、必要なら個別にログを書き換えてもいい。

分散型ということで、複数のリポジトリを数珠つなぎにして使う方法も考えられる。
例えばオープンソースのツールやゲームを一部自分好みに書き換えたとして、それが公式で採用された場合はいいとして、そうでない場合公式のバージョンアップに追随しつつ自分のカスタマイズを維持するのは結構大変。
その点、公式用リポジトリと、そこから派生した自分用のリポジトリの2つを作って管理していけば、どちらでどういう更新が行われたか非常にわかりやすい。

1点気になるのが、archiveコマンドで作ったzipファイル内のファイル名が文字化けしてること。
日本語苦手と言われたGitもバージョンアップが進んでるようで、ファイル名もコメントも特に困る事はないんだけど、何故かこれに関しては上手く動いてくれない。
使わなくても特に不都合はない機能ではあるけど、日本語の不安がまだ完全には払拭されてない。

些細な問題があるにせよ、全体としては大満足。
さっそくいたる所にリポジトリを作って遊んでいる。
その場にぱっと作って、要らなくなったら消せばいいから、落書き程度にプログラムでも気軽に使える。
TortoiseSVNからTortoiseGitへの移行で、更新状況のアイコンへの反映等便利機能もそのまま。

他にも新世代のバージョン管理ツールがいくつかあるし、それも試してみようとは思ってるけど、当分はGitが主力になりそう。
posted by unaunagi at 2013/06/21 20:55 | Comment(0) | TrackBack(0) | デジタル>プログラム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。