Contents
旧来のソース管理方法
旧来ソースの更新では日付を使って管理する方法などが一般的でした。今でもweb製作の現場などではそのようなソースの管理方法で対応している現場も多いと思います。
この方法は簡便な反面、
- どのような変更をおこなったのかがわからず、履歴を追えない
- 戻すときに手作業で行うため人的ミスが発生しやすい
- ルールの統一化が難しい
などさまざまな弊害が起こります。
バージョン管理ツール
そんな状況からか近年ではソースの管理に関してはバージョン管理ツールを使うことが一般的です。
バージョン管理とは?
バージョン管理ツールとはソースの更新に対して変更履歴を記録しておけるツールです。このようなツールでソース管理することで
- 誰が、いつ、どのような変更を、なぜ行ったかがすぐわかる
- ソースが肥大化しない
(似たような名前で日付が違うソースが乱立するということがありません。) - バグが発生したときなど決まったバージョンに容易に戻すことができる
といったようなメリットが存在します。
有名なバージョン管理ソフト
バージョン管理ツールで有名なものといえば、SubversionとGitですね。
Subversionは一箇所のサーバーでソースを一元管理しておく「集中型バージョン管理システム」です。逆にそれぞれのローカル環境で個々に環境を構築することのできる「分散型バージョン管理システム」がGitです。
近年は分散型のメリットが大きいことからGitのシェアが高まりつつあります。
Gitの基本的な使用法
ここでは私が使用したGitの使用法について簡単に書かせていただきます。
初期化(git init)
Gitにおいてまず行うことは初期化です。ソースの変更の履歴などを保存しておくディレクトリのことをリポジトリといい、各プロジェクトごとにリボジトリを作成します。そのリポジトリの作り方ですが、プロジェクトの直下のディレクトリに移動し、
git initでOKです。
(ちなみにローカルではなく、共有リポジトリの場合はgit init –bare –shared)です。
基本的な使用法(add→commit→push&pull)
gitを使った基本的なファイル更新は
git add ファイル名
(カレントディレクトリ以下を全てaddする場合は
git add . )
↓
git commit –m “変更するときの文言”
これが一番使うコマンドですね。基本的な1つの変更記録のことをコミットといい、addとcommitはほぼワンセットになります。
またこれまでは基本的にローカル環境下のソースの更新について行ってきましたが、ローカルの変更記録を共有リポジトリに反映させることをプッシュといいます。
まずリモートの登録をして見ましょう。(リモートの登録方法は下記の通りです。)
git remote add origin ssh://ユーザー名(:パスワード)@ホスト名:ポート番号(22がディフォルト)/リポジトリのディレクトリ
パスワードはかいてあればpush時に聞かれることはありません。なければpush時に聞かれることになります。
git remote –v で確認です。
また変更履歴を反映させるには
git push
になります。
逆に共有リポジトリのソースの変更履歴を取り込むときは
git pull になります。
基本的には自分が変更をして、反映させるときは
1 2 3 |
git add . git commit –m “メッセージ” git push |
リモートの変更履歴を取り入れるときは
git pull
になります。
これらのコマンドが日常的に使うコマンドかと思われます。
gitの設定
なお、使用するときに下記のような設定をしておきましょう。
1 2 3 4 5 6 7 8 9 10 11 |
#登録ユーザー名を何にするか git config --global user.name "test" #登録ユーザーメールアドレスを何にするか git config --global user.email test@example.com #エディタを標準でvimにしたいとき git config --global core.editor vim #色をディフォルトで反映させるとき git config --global color.ui true #CRLFをLFに自動変換 git config --global core.autocrlf input ※ちなみに特定のディレクトリのみの設定を変えたい場合は--globalを省略するとそのディレクトリだけになります。 |
ちなみに
git config --global –list
で設定されている情報を見ることができます。
さらに細かい設定が気になる場合はここを見ましょう。
変更履歴の参照(git log)
上記の4コマンドで基本的な作業は終わりです。
ただ変更履歴をみたいこともあると思います。そのときに使われるのが
git log です。
こちらのコマンドもさまざまなオプションがあり、より詳細にみたり、変更履歴を確認したりとさまざまな参照方法があります。
修正系の処理(revert,reset,rebase)
順調にやっていればこのままでOKですが、過去のコミットを打ち消したいとき、戻したいとき、履歴そのものを変更したいときなどあると思います。
まず過去のコミットの打ち消しですが、
git revert です。(ただし戻したという履歴自体が残ります。)
次に、過去のコミットに戻したいときは
git reset です。このコマンドは純粋にファイルやコミットを戻します。また戻し方によっても様々なオプションが存在します。
また過去の履歴を直接編集したいときは
git rebase –i HEAD~~数字 を使います。
(数字はどれぐらい過去のバージョンまで戻るかです。)
コマンドを入力するとエディタが開くので履歴自体の削除や2つのコミットを1つ分に統合することなどができます。
こんなところかなー他にもいっぱいコマンドはありますし、それぞれのコマンドには様々なオプションがついていますが、今回は要点をまるっとまとめるのがポイントだったので割愛します。
Gitの設定
またgitの設定をしておきましょう。(そうしないと色がでません。)
1 2 3 |
git config --global user.name ここにユーザー名 git config --global user.email ここにメールアドレス git config --global color.ui auto |