【gitをソフト開発で使いこなそう!:第1回】gitって何だ?
バージョン管理システムって?
Gitはバージョン管理システムの一つに当たります。
ですが、そもそもバージョン管理システムとは何でしょうか。
バージョン管理システムとは、その名の通りファイル(Gitではテキストファイル)の変更履歴を記録するためのシステムを言います。
下で具体的にバージョン管理システムを使うことへのメリットを挙げていきます。
バージョン管理システムを使う場面
ソフト開発
あなたがプログラムを制作していてふと「あ、この変更取り消したいな」と思ったとします。
この時、ただフォルダにソースコードが置いてあるだけだと既にファイルを保存した後の場合、変更を取り消すことが出来ません。
しかし、Git等のバージョン管理システムを使っていると変更を簡単に取り消すことが出来ます。
多人数開発
あなたとあなたの友人でソフトを共同開発することになったとします。
この場合、バージョン管理システムを知らなければソースコードはDropBox等に挙げて管理するのではないでしょうか。
ですが、この管理方法には以下に挙げるような問題点が複数存在します。
- 自分の知らない所で勝手にファイルが書き換わっている可能性がある。また、書き換わっていたことに気づいてもどこが書き換わっているのか把握することは不可能。
- 逆にせっかく自分が編集したものが知らない間に消滅したり、変更されたりしている可能性がある。
- 誰がどのファイルを編集したのかが分からない。
- ファイルを編集したくても、ほかの人が自分の編集したいファイルを編集しているときは編集できない
バージョン管理システムを使うと、これらの問題を解消することが出来ます。
Gitはどうやってバージョンを管理するのか
変更の単位-コミット
Gitにファイルの変更履歴を記録するには、コミットという操作を行う必要があります。
コミットを行うとコミットを行った時点のファイルの情報が格納されます。
従って「ファイルに変更を加える->コミット」という操作を複数回行うことによって、結果的にファイルの変更履歴を記録することになります。
具体的なコミットの操作は、後の章で解説します。今はコミットという操作を行えば変更履歴を記録できるんだな程度の理解で構いません。
ローカルリポジトリとリモートリポジトリ
ファイルやファイルの変更履歴をひとまとめにして置いておく場所のことをリポジトリと言います。そのうち自分のPC上で管理しているリポジトリのことをローカルリポジトリ、複数人で共有するためにサーバー上で管理しているリポジトリのことをリモートリポジトリと言います。
普段はファイルの変更履歴はローカルリポジトリで管理されています。ですがその変更履歴を複数人で共有したい時に、変更をリモートリポジトリに反映させることが出来ます。
もちろん、リモートリポジトリに反映された変更をローカルリポジトリに取り込むことも出来ます。
このような仕組みにすることで、複数人でファイルを共有することが出来ます。
具体的な操作は後の章(本連載の後半になるかな?)で詳しく解説します。
ここでは、ローカルリポジトリとリモートリポジトリの用語の意味を理解する程度で構いません。
Gitを実際に使うには?
GUIツールでGitを使う
GUIツールでGitを使う場合、操作のたびにマウスで操作する必要があります。
操作が直感的でわかりやすいため、操作方法を習得するのにそれほど時間がかかりません。
しかしGUIツールごとによって操作方法が異なる場合が多く、GUIツールの乗り換えはある程度の努力を必要とします。
コマンドラインでGitを使う
コマンドラインでGitを使う場合、git init
やgit commit
といったコマンドを打って作業を行います。
最初はコマンドの操作方法を覚えるのに時間がかかりますが、慣れて来ればGUIツールより高速に操作を行えるようになります。
またGUIツールは、ツールやツールのバージョンによって、操作方法が異なる場合が多いですがコマンドラインであれば操作方法はどのコマンドラインを使っても同じです。
本連載では、解説の都合上コマンドラインを使ったGitの操作方法を解説していきます。
次回予告
次回は、PCにGitをインストールしてGitを実際に使ってみます。
参考文献
Pro Git
Git,GitHubの使い方について、非常に詳しく丁寧に解説されています。
ですが、内容が初心者には難しいと思われるため一度入門記事等を読んで一通りGit,GIthubを勉強してから読まれると理解が深まると思います。
pdf形式であれば、日本語版が無料で公開されています。
git-scm.com