Git入門1

サルでもわかるGit入門 http://www.backlog.jp/git-guide の入門編を見たほうが、イラストもあってわかりやすいと思います。

Git

バージョン管理システム。バックアップ管理や、複数人で編集する場合なども差分を表示したり上書きを防いだり便利。

リポジトリ

ファイルやディレクトリの状態を記録する場所。変更履歴を記録する。

リモートリポジトリ
専用のサーバに配置して複数人で共有するためのリポジトリ
ローカルリポジトリ
ユーザーのローカルマシン上に配置するリポジトリ。全く新しいリポジトリを作る方法と、リモートリポジトリをコピーする方法の2種類ある。

2種類のリポジトリを使い分けることで、普段の作業はローカルリポジトリで行い、キリの良い所でリモートリポジトリにアップロードして公開。あるいはリモートリポジトリから他人の作業内容を取得することも可能。

コミット

ファイルやディレクトリの追加/変更をリポジトリに記録すること。コミットを実行すると、前回からの差分を記録したリビジョンと呼ばれるものが作成される。

コミットするときは、バグ修正、機能追加などひとつひとつの変更単位ごとに実行しておくと、履歴を追うときにわかりやすくなる。

コミットするときは、コミットメッセージの入力が必須。変更内容のわかりやすいコミットメッセージを書くことが大切。
1行目:コミットでの変更内容の要約
2行目:空行
3行目:変更した理由

ワークツリーとインデックス

ワークツリー
Gitの管理下に置かれた、実際に作業をしているディレクトリのこと
インデックス
リポジトリにコミットする準備をするための場所。ワークツリー(ディレクトリ)の中にあるファイルのうち、どれをリポジトリにコミットするかという設定?

コミットを実行したとき、ワークツリーから直接リポジトリ内に状態を記録するのではなく、その間に設けられているインデックスの設定された状態を記録するようになっている。なので、コミットでファイルの状態を記録するためには、まずインデックスにファイルを登録する必要がある。

インデックスを間に挟むことで、ワークツリー内の必要ないファイルを含めずにコミットを実行したり、ファイルのいびつの変更だけをインデックスに登録してコミットすることが出来る。

viの基本操作

まず大前提として、viには「コマンドモード」と「編集モード」の2種類モードがある。起動直後は「コマンドモード」になっていて、文字入力を行うには特定のキーを押して「編集モード」に切り替え無くてはならない。また、編集が完了したら、ESCキーを押して「コマンドモード」に戻す必要がある。

ESC コマンドモードに戻る
:q セーブせずに終了
:q! 変更した行もセーブせずに終了
:w セーブするが終了しない
:wq セーブして終了
i 編集モード。現在のカーソル位置から挿入。
R 編集モード。現在のカーソル位置から置換。
x カーソル位置の1文字削除
yy 1行コピー
dd 1行削除(カット)
p ペースト(貼り付け)
/正規表現 前方検索
?正規表現 後方検索
n 次の候補
N 前の候補

ドットインストールの「ローカル開発環境の構築」を参考に、MacOSX 10.7上にCentOSの仮想環境を構築していく。の続き

  1. 作業用ユーザーでログインできたら、作業ユーザーの権限を設定するために、一旦ログアウトし、rootユーザーで再度ログイン。
  2. rootユーザーでログインしたら、wheelグループに作業用ユーザーを追加する。 usermod -G wheel [作業用ユーザー名]
  3. wheelグループの権限を設定する。 visudo を実行
  4. エディタが起動するので、 /wheel を入力してエンター(エディタ内でwheelという単語を検索)
  5. # %wheel ALL=(ALL) ALL という行の先頭にある2文字(#と半角スペース)を削除する。削除するには、削除したい文字にカーソルを合わせてxキーを押す。
  6. ESCキー -> コロン(:) -> wq! -> エンター と入力して、変更を強制的に上書き保存しエディタを終了する。
  7. 作業用ユーザの権限設定が終わったので、rootユーザーでログアウト -> 作業用ユーザーでログイン
  8. webサーバーのインストールを行う。 sudo yum -y install httpd
  9. mysqlサーバーのインストールを行う。 sudo yum -y install mysql-server
  10. PHPのインストールを行う。 sudo yum -y install php php-devel php-pear php-mbstring php-gd php-mysql
  11. PHPのインストールが完了したら、php.iniの設定を行う。php.iniの内容を確認するには、ターミナルで php -i を実行。php -v を実行すると、PHPのバージョンを確認できる。
  12. php.iniを編集する前に、バックアップをとっておく。 sudo cp /etc/php.ini /etc/php.ini.org
  13. rootユーザーになる su - 、一般ユーザーに戻る exit (スーパーユーザーの場合コマンドラインに#、一般ユーザーの場合コマンドラインに$が表示される)
  14. php.iniの編集を始める。 vi /etc/php.ini (レッスン動画ではvim /etc/php.ini としていたが、手元の環境ではvimが無いというエラーが出たのでviにしてみた。vimとviの違いは知らない)
  15. 編集に入る前にviの使い方がわからなかったので、viの基本操作を物凄く簡単にまとめてみた。id:skipform:20121102#p2
  16. エラーログの保存場所を変更 error_log = /var/log/php_errors.log (行頭の;を削除してコメントアウトを解除し、/var/log/を追加)
  17. マルチバイト文字の設定 mbstring.language = Japanese (行頭の;を削除してコメントアウトを解除)
  18. 文字コードEUC_JPからUTF-8に変更 mbstring.internal_encoding = UTF-8 (行頭の;を削除してコメントアウトを解除し、EUC_JPからUTF-8に書き換え)
  19. mbstring.http_input = auto (行頭の;を削除してコメントアウトを解除)
  20. mbstring.detect_order = auto (行頭の;を削除してコメントアウトを解除)
  21. expose_php = Off (デフォルトではOnになっているので、Offに書き換え)
  22. タイムゾーンの設定 date.timezone = Asia/Tokyo (行頭の;を削除してコメントアウトを解除し、Asia/Tokyoを追加)
  23. 以上でphp.iniの編集が完了なので、:wq と入力し、保存してviを終了する。
  24. セキュリティの設定を無効にする(selinuxを無効化する) setenforce 0 (これだけだと起動毎に行う必要がある)
  25. OS起動時にselinuxを無効化するため、viを起動して設定ファイルを編集する vi /etc/sysconfig/selinux
  26. SELINUX=enforcing という行を SELINUX=disabled に変更して上書き保存しviを終了
  27. iptablesを無効化 /sbin/service iptables stop
  28. OS再起動時にiptablesを無効化 chkconfig iptables off (chkconfigはサーバ起動時の設定を行うもの)
  29. CentOSを再起動 reboot
  30. 作業用ユーザーでログイン後、スーパーユーザーになっておく。 su -
  31. httpdを起動 /sbin/service httpd start
  32. MySQLを起動 /sbin/service mysqld start
  33. OS起動時にhttpdを起動するように設定 chkconfig httpd on
  34. OS起動時にMySQLを起動するように設定 chkconfig mysqld on
  35. Apacheの動作を確認するため、MacOSX側のブラウザで http://[hosterで設定したホスト名] にアクセス。Apache 2 Test Pageが表示されたらOK
  36. MySQLの動作を確認するため、terminalで mysql -u root を実行(このrootはMySQLが自動的に作成するMySQLのrootアカウント)
  37. MySQLのプロンプトが表示されたら動作OKなので、exitを入力してMySQLから抜ける
  38. /var/www/html ディレクトリの所有権を作業用ユーザーに変更 chwon [作業用ユーザー名] /var/www/html
  39. cyberduckから仮想OSにFTP接続出来るように設定する。SFTPを使用、作業用ユーザーの名前とパスワード
  40. あとは適当にhtmlファイルやphpファイルを作ってサーバの動作確認。

自分の場合は、cyberduck + テキストエディタではなくて、Dreamweaverを使ってみる。Dreamweaverのサイト管理から仮想サーバにFTPしてアップロードするように設定してOK。ここまでは全て、環境構築なので一回やったら終わり。

普段の運用

  1. MacOSXを起動
  2. VirtualBoxを起動
  3. VirtualBox上でCentOSを起動
  4. hosterを起動
  5. Dreamweaverで開発、アップロードなど

普段の運用では、サーバの設定を変更するとかでも無い限り、Terminalを起動する必要はない。

ドットインストールの「ローカル開発環境の構築」を参考に、MacOSX 10.7上にCentOSの仮想環境を構築していく

http://dotinstall.com/lessons/basic_local_development

ドットインストールの動画を見ていくのがわかりやすいので、スクリーンショットは撮っていませんし、説明もかなり端折っています。

使用するソフトなど

環境構築手順

  1. まずはVirtual Boxをインストール
  2. Virtual Boxを起動する
  3. 左上の[New]から新しい仮想環境を作る
  4. 仮想環境の名前を付けて、OSの種類をLinux -> RedHatに設定する。その他の設定は基本的にそのまま進める。
  5. 作成した仮想環境の設定を2つだけ行う。1つ目は[Setting] -> [Network]で[Bridge Adapter]を選択。
  6. 2つ目は、同様に[Setting] -> [Storage]で仮想CDドライブのCDアイコンをクリックし、ダウンロードしておいたCentOSの****netinstall.isoを選択。以上で仮想環境の設定は完了。
  7. 作成した仮想環境を選択して、[Start]をクリック。
  8. 仮想環境が起動すると、仮想CDドライブにマウントしてあるCentOSインストーラが起動するので、適宜インストールを進めていく。ネットワーク経由のインストールを行うので、メディア選択画面ではURLを選択。URLには、 http://mirror.centos.org/centos/6.3/os/x86_64/ を指定。
  9. 途中でファイルシステムのエラーが出たので、パーティションの再作成を行った。その過程でタイムゾーンとrootパスワードも設定。
  10. インストールが完了したら、VirtualBox側で[Setting] -> [Storage]から****netinstall.isoをアンマウントしておく。
  11. その後、CentOSを再起動。
  12. 再起動したら、rootでログインする。
  13. yum -y update を入力してCentOSを最新環境にアップデートする。
  14. /sbin/ifconfig を実行し、仮想環境のIPアドレスを確認する。
  15. hosterをインストールして起動し、適当な名前、ホスト名、IPアドレスを登録する。
  16. 登録した項目名の左にあるチェックボタンをクリックして、ホスト名とIPアドレスの変換を有効化する。
  17. terminalを起動し、SSHでログインしてみる。 ssh -l [ユーザー名(今回はroot)] [ホスト名]
  18. useradd [任意のユーザー名] を実行し、作業用のユーザーを作成する。
  19. passwd [ユーザー名] を実行し、作業用のユーザーのパスワードを設定する。
  20. logout を実行し、一旦 root からログアウトする。
  21. ssh -l [ユーザー名] [ホスト名] を実行し、作成した作業用ユーザーでログインしてみる。


今日はここまで。ドットインストールのレッスンで言うと「#11 作業ユーザーを作成する」まで終わりました。ドットインストールのレッスンではCentOS 5 (5.7)をインストールしていましたが、なんとなく新しいほうが良いだろう的な感覚でCentOS 6 (6.3)をインストールしてみました。そのため、動画と全く同じ画面や手順では進みませんでしたが、特につまづくようなところもなく進めてこれたので良かったです。

twitters for the day

10:35 ほんとにMBもMBPもFW400無い。Macでラップトップで音楽な人にとってはオーディオインターフェースの選択肢が激減で困りますね。次のマイナーチェンジでFW400復活して欲しい。
23:02 myspaceで、全然知らない東京の人からフレンドリクエストが来た。しかも「ファンです」とのメッセージ付きで。なんだろう。ファンてどういう意味だろう。
23:16 おとといの録音を聴いて、ラインで録ったのは失敗だったかもしれないと考えているところ。お客さんの歓声が邪魔臭くても、低音が弱くても、ライブの雰囲気まで含めて記録しとけば良かった。
23:20 @takahamicee いやいや、俺がファンですよ。へきくうとか最初のdtn聴いてなかったら自分も音楽やろうなんて思わなかったもの。
23:24 これは本当に。@takahamiceeと@kndと@tailの三人組だった頃のdtnがルーツと言っても過言ではない。
00:30 ライブ中に聴いている音と、ライン録りの音が違いすぎてどうしてよいのやら困ります。
02:04 坊主にしてから会った東京の友人に「あれヤクザだよね」なんて言われているらしい。ショックであります。