2014年6月20日金曜日

Gitの初期設定と基本操作

 GitはGUIになれているダメな人間からすると、いったい今どんな状況なのかわかりにくくて不安になるバージョン管理システムです。が、大変有用らしい。

 インストール後、端末ごとに一回だけ行うイニシャライズ。
$ git config --global user.name "あなたの名前"
$ git config --global user.email your.email@example.com
  Railsチュートリアルでは、長い予約コマンドのエイリアスを作っておくと便利だと書かれています。下記はcheckoutをcoとする例。
$ git config --global alias.co checkout
下記でgitコマンドの結果をカラー表示できる。
$ git config --global color.ui true
git configの設定値を確認するには-lオプション。
$ git config -l 

参考:
git config 備忘録

 コアエディタも設定しています。例ではSublime Textに設定しています。commit時にエディタが起動してコメントを記入できたりもします。保存して閉じるとターミナルに戻される。
$ git config --global core.editor "subl -w"
アプリケーションのルートディレクトリでリポジトリの初期化。
$ git init
Initialized empty Git repository in /Users/mhartl/rails_projects/first_app/.git/
 ルートにある.gitignoreファイルで、Gitの管理対象から除外するファイル・ディレクトリを指定します。以下はRailsチュートリアルで推奨していたもの。
# Ignore bundler config.
/.bundle
# Ignore the default SQLite database.
/db/*.sqlite3
/db/*.sqlite3-journal
# Ignore all logfiles and tempfiles.
/log/*.log
/tmp
# Ignore other unneeded files.
doc/
*.swp
*~
.project
.DS_Store
.idea
bundler_stubs/ #RVM使用時
ファイルをGitに追加する。再起的に処理されるので、'.'であればルートディレクトリとそのサブディレクトリを含めて全てが対象となる。
 追加後、且つコミット前のこの状況(抽象的ですが待機場所)はステージングエリアと呼ばれる。
$ git add .
コミット前のファイルを確認するには、下記のgit statusコマンドを使う。
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
#   (use "git rm --cached <file>..." to unstage)
#
#       new file:   README.rdoc
#       new file:   Rakefile
 変更を保存(コミット)するには、git commitを使う。-mオプションで、続く文字列がこのバージョンのコメントとして入る。
 -mオプションをつけない場合、コマンド実行後にコメントを聞かれる。
$ git commit -m "Initialize repository"
$ git commit
 コミットの履歴はgit logで確認できる。logの閲覧モードからは'q'キーで抜けられる。
$ git log
commit df0a62f3f091e53ffa799309b3e32c27b0b38eb4
Author: Michael Hartl <michael@michaelhartl.com>
Date:   Thu Oct 15 11:36:21 2009 -0700
  Initialize repository
その他にもこんな表示方法がある。
$ git log --oneline   # 1行ずつの簡易ログ表示
$ git log -p             # 過去commitの詳細表示
$ git log -stat         # 最新commitの統計的な変更状況表示
$ git diff                 # 最新commitと現在との内容比較
$ git diff --cached  # ステージング後のファイルは--cachedオプションをつける
 あまり複雑なことをしようとしたら、素人的にはcuiよりもSourceTreeとか使った方が絶対いいけど。間違いもないし。

 gitで管理していてもあたしなんて乱暴にエクスプローラからファイルを追加したり削除したりしちゃってるけど、本来はgit管理上での操作を明示的にするためにターミナル上で下記のように削除や移動、リネームをすべきらしい。
$ git rm index.html
$ git mv index.html index.html.erd

0 件のコメント:

コメントを投稿