Railsチュートリアル 第1章 1.4 Gitによるバージョン管理
1.4.1 インストールとセットアップ
・gitはもともとIDEに入っている。以下の手順でセットアップを行う。
①gitをインストールしたとき、初回だけsystemセットアップと呼ばれる設定をする必要がある。
$ git config --global user.name "Your Name" $ git config --global user.email your.email@example.com
ここで設定した名前とメールアドレスは、リポジトリ上で公開されるのでちゃんとしたのをつけよう。
②git initでリポジトリを初期化しておく。よくわからないけど。
③git add -A をし、現在のディレクトリにあるファイルをすべてgitに追加する。この段階ではまだ保存されていない。安全のためすぐにコミットはされず、ステージングという一時待機の状態になっている。ステージングされているファイルを確認するためには、git status コマンドを用いる。
④git commit を用い、ステージングされていた(保留されていた)ファイルをコミットする。このとき、-mをつけるとメッセージを指定できる。
$ git commit -m "Initialize repository" [master (root-commit) df0a62f] Initialize repository
⑤ここまででコミットされたが、これはあくまでローカルマシン上のgitに保存されたにすぎない。共有のサーバーとかに保存するためにはpushをする必要がある。(1.4.4説で解説)
1.4.2 Gitのメリット
・Gitを使っておけば、例えば間違えて重要なファイルをrmしてしまったとしても、checkoutを使えばもとに戻せたりする。
1.4.3 Bitbucket(Github)
・ローカルに入ってるリポジトリをpushして公開/共有するためのWebサービスのこと。
・使うにはまずSSH公開鍵を作成し、Githubに登録しておく必要がある。SSHとはSecure Shellの略語で、安全な通信の規格名。パスワード方式と公開鍵方式がある。
(qiita.com)
・SSH公開鍵はssh-keygenで作成し、cat id_rsa.pubで確認できる。
$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/ec2-user/.ssh/id_rsa. Your public key has been saved in /home/ec2-user/.ssh/id_rsa.pub. The key fingerprint is:~~~~ $ cat id_rsa.pub
・作った公開鍵をGithubに登録したら、 ssh -T git@github.com で接続を確認できる。
・リポジトリをプッシュするためには、まずGithubをプッシュ先として登録する。
$ git remote add origin git@github.com:(ユーザー名)/(リポジトリ名).git
・次にプッシュする。
$ git push -u origin master
・Gitの優れた点は、ブランチ機能にある。枝分かれ(ブランチ)を作成し、元のファイルを変更せずに編集できる。
①git checkout -b (ブランチ名) でブランチを作成できる。ブランチの状態は git branch で確認できる。git checkout はブランチ間の移動コマンドでもある。
$ git checkout -b modify-README $ git branch master * modify-README
②編集を行い、 git statusで確認をする。その後、git commit でコミットをする。変更したファイルすべてをコミットするには -a を、メッセージをつけるには -m "メッセージ" を使う。また、新しいファイルを作成した場合は、先にgit Add をしないとそのファイルがリポジトリに追加されない。
$ git status On branch modify-README Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md $ git commit -a -m "Improve the README file" [modify-README 237aaee] Improve the README file
no changes added to commit (use "git add" and/or "git commit -a")
③ここまでの変更はすべてブランチ上で行われたものである。これをマスターブランチにマージする必要があり、git checkout master でマスターに移動してから git merge を用いる。
$ git checkout master Switched to branch 'master' $ git merge modify-README Updating 7f43922..237aaee Fast-forward README.md | 27 +++++---------------------- 1 file changed, 5 insertions(+), 22 deletions(-)
④最後に、もしサブブランチが不要になれば、git branch -d で削除する。
$ git branch -d modify-README Deleted branch modify-README (was 237aaee).
または、git branch -D を使うと、ブランチ上の変更を全て破棄し、ブランチを消せるが、ミスしたときに使うべし。