マスターはGitで管理できるのか?その1
弊社のActiveImage Deploy USBも発売して数年経過しましたが、色々な環境、お客様でのパソコン導入などでご使用いただいています。このDeploy USBで使用するマスターファイル。要するにキッティングで使用する一般化された(Sysprep実行された)イメージファイルと、Windowsアップデートを行ったイメージファイルなどの識別方法の手段として、文章管理に使用しているGitが使えるのか?といった単純な疑問と興味から検証してみました。
特に技術文章ではなく、興味本位の読み物として読んで頂ければ幸いです。
・こんな事をしている理由
Deploy USBで作成されるイメージファイルは、必ずSystembackupdisk.aivといった固定のファイル名で、マスター管理を行う場合に、Deploy USBで作成したUSBメモリからこのファイルを何処かに保存した場合、今USBメモリ内のマスターファイルと保存したファイルが同じかどうかの判断は、復元してみないと判らないので、これをもっと簡単に識別できないかなぁ~っと思っただけで、深い意味はありません。
・Gitの基本情報
Gitに関してはローカルパソコンだけで使用できます。(GitHubは今回使用しないで)
パソコン単体で行う場合、下図のような感じでファイルを管理する事ができます。
ワークツリーは普通にファイルを保存するフォルダです。通常文章ファイルなどは編集する毎に上書き保存される事になります。このワークツリーには常に最新のファイルがある状態となります。実際のバージョン管理(履歴を行うのは)下図のローカルリポジトリで行います。管理を行うファイルについて、一度インデックスに追加して、ローカルリポジトリにコミットを行う事により、更新履歴が保存される状態になります。

・GitHubについて
一般的なGitを使用したファイルの管理でGitHubが主流なのかと思います。
何が異なるとといえば、下図のようにローカルリポジトリがインターネット上のリモートリポジトリで管理できる事になります。

このようにしておけば、例え何らかの問題で、ローカルリポジトリが消えたなどの問題が発生しても、複数人で共有して使用する場合でもスムーズに対応が行えます。
しかし、今回はイメージファイルといった、最小サイズでも1ファイル8GB以上はあるので、ローカルだけで行っています。
・Gitのインストールについて
下記サイトからダウンロードしてインストールを行います。
https://gitforwindows.org/
Windows版は下記のdownloadをクリックします。

下記のインストーラーがダウンロードできます。そのまま実行します。
今回は全てデフォルトの設定でインストールを行います。

インストールが完了すると下図のようになります。

インストールが完了するとプログラムが下図のように追加されます。

・Gitの環境の準備
今回は一番下のGit Bashをクリックして起動します。

ターミナルが起動します。動作しているかの確認などは“git –version”とタイプして実行します。問題なければバージョン情報が正常に表示されます。

初めに作業用フォルダを作成します。現在の場所を知りたいので、”pwd”コマンドで場所を表示します。この環境では”user”といった名前でログインしているので、下図のようになります。

今回はDesktop上に分かりやすくフォルダ作成するので、”cd desktop”で移動します。

今回はわかりやすいようにDesktop上に”test”フォルダを作成します。その後で確認をします。

“test”フォルダに移動を行います。

この状態ではまだインデックスもローカルリポジトリもありませんので、この”test”フォルダをGitで使用するように宣言を行う必要があります。そのために、”git init“を実行します。

するとtestフォルダの下に.gitと作成されたメッセージが表示されます。しかし”ls”コマンドではこのフォルダは隠しフォルダのため参照は行えません。
なので、“ls –a”を実行すると、下図のように隠しフォルダが作成されているのが、確認できます。.gitフォルダはGitで管理している情報は全てはいるので、重要なフォルダとなります。(ローカルリポジトリもこの中に出来ています)

この状態でDeploy USBで取得したマスターファイルをコピーします。今回はインストール後に”Systepre”を実行して一般化してシャットダウンした状態を取得したマスターファイルとなります。

コピーするとこのようになります。

次回は実際のコミット方法、比較などを行います。
Gitは通常の文章、ソースコードの管理として使いやすいツールとなりますので、色々と試して頂ければと思います。弊社の営業本部でも、試行錯誤をしながら日々業務を行っています。
その中身をブログ形式で紹介させて頂きます。内容を間違える事もあるかと思いますが、色々と今後も挑戦して参りますので、ご参考?にして頂ければ幸いです。
By Sales Sato