当方の Cygwin 環境をちょっと整理(フォルダ移動)した際、あれこれと再インストール・設定をしました。 そこで、Git についての記録を今まで取っていなかったと思い今回記録として残しておくことにしました。
Git とは分散型バージョン(リポジトリ)管理ツールです。 今までは Subversion とか CVS、Windows なら VSS とかの集中型バージョン管理ツールが定番でした。
集中型では、開発時に常にローカルから中央リポジトリ(サーバ)へアクセスして、最新ソースを取得する必要がありました。 そのため、ネットワークが使えない環境では使えないなどのデメリットがありました。
分散型では、ローカルにもリポジトリを用意しておき、中央とはソースのやり取りではなくソースの変更を同期する、という特徴があります。
その他、バージョン管理の詳細は別途ご確認ください。
また、Windows には msysGit なる GUI ツールもありますが、アンインストールする際にレジストリ周りで手こずったり、日本が使えないなどの問題があり、現在は使用していません。 最新(4ヶ月程前にリリース)の msysGit は日本語も扱えるようになったみたいですが。。。
Git インストール・設定方法
0. 前提条件
Cygwin でのインストール・設定を想定しています。 Linux 等でも同様だと思いますが、インストール部分は yum とか aptitude とか使うようになると思います。 また、GUI ツールを使用する事は想定していません。 そして、一番重要なのは今回は
- ローカルリポジトリのみで運用する。
- 中央リポジトリは使用しない。
分散型と言いながらローカル完結型です。(個人利用なので)
1. インストール
Cygwin の setup.exe 等で以下のパッケージをインストールする。
- git (Git 本体)
- git-svn (Subversionリポジトリと連携する際に必要)
apt-cyg コマンド等が利用できる環境なら以下のコマンドでインストールする。
1 2 |
|
以下のバージョン確認コマンドでインストールできているかを確認する。
1 2 |
|
2. 初期設定
最低限必要と思われるユーザ名・メール・カラーリングの設定をする。
1 2 3 |
|
以下のコマンドで設定内容を確認する。
1 2 3 4 |
|
3. リポジトリの作成
既存のディレクトリ( /home/src/example ) を Git 管理する例です。
1 2 3 |
|
4. ファイルの追加
/home/src/example ディレクトリ配下に管理したいファイルを準備する。 今回は test.rb という Ruby スクリプトを配置した。
5. ファイルをリポジトリに追加
以下のコマンドでスクリプトをリポジトリに追加する。
1
|
|
これでコミット可能の状態(ステージング状態)になる。
- -u オプションで新規ファイルのステージングはせず、既存ファイルのアップデートのみ行う。
- -A(-all) オプションで全部のファイルのステージングを行う。
- -i オプションでインタラクティブモード(対話モード)になる。
インタラクティブモード(対話モード)にした場合は以下のようになる。
1 2 3 4 5 6 7 8 9 |
|
6. リポジトリへのファイル追加の取り消し
コミットしたくないファイルまで add してしまった時に元に戻す方法です。 まず、必要なら以下のコマンドでコミットされるファイルの内容を確認してみる。 (今回はまだ add したばかりなので、空ファイルと今回追加したファイルを比較した事になっている)
1 2 3 4 5 6 7 8 9 |
|
add されたファイルを指定して add の取り消しを行う。
1 2 |
|
取り消しが正常に行われたか、 以下のコマンドでリポジトリの状態を確認する。 (今回の場合、コミットするために add されたものが何もないと言っている。(add が正常に取り消されている))
1 2 3 4 5 6 7 8 9 10 |
|
7. コミット
以下のコマンドでステージングされてるファイルをコミット(確定)する。 -m オプションでコミットコメントを入力する。
1 2 3 |
|
コミットする時点で add されていないファイルであっても “-a” オプションを付加することで add してからコミットするようにできる。
以下のコマンドでログが確認できる。
1 2 3 4 5 6 |
|
8. コミットの取り消し
以下のコマンドで直前のコミットを取り消すことができる。 (取り消すと言っても、新たなコミットで直前のコミットが無かった事にする)
1
|
|
-n オプションを使うと取り消しのみ行う。コミットは別途に行うことになる。 上記の方法とは別に、コミットした行為自体を取り消すには “git reset” コマンドを使用する。
9. プロジェクト(リポジトリ)作成後の基本的な流れ
プロジェクト(リポジトリ)作成後の基本的な作業の流れは以下のようになると思います。
- ソースの作成・修正
- git diff で差分確認
- git add でステージング
- git commit -m “コミットコメント” でコミット
上記 3 と 4 合わせて git commit -a -m “コミットコメント” でステージング+コミットしてもOK。
以上。