git

最近、githubとEGitを使い始めたが、なかなか使い方が覚えられない。自分しか使ってないくせに、githubにpushするときに、ときどきrejectされる。http://gitimmersion.com/で、キチンとgitの使い方をお勉強させてもらうことにした。



以下、よく使うコマンド

  • git init
  • git status
  • git add
  • git commit
    • "git add"でお知らせした変更を、コミットする。お知らせしてない変更はコミットされない。
  • git log
    • コミットの履歴を表示する。
    • "git log --pretty=oneline"で、各コミットを1行で短く表示してくれる。
    • おすすめのログ形式:git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
  • git tag
    • チェックアウトしているブランチにタグをつける。
  • git tag
    • タグ名の一覧を表示する。
  • git tag -d
    • 指定したタグを削除する。
  • git checkout
    • 指定したコミットをチェックアウトする。commitにはハッシュかタグ名を指定する。
  • git checkout
    • 指定したブランチをチェックアウトする。
  • git checkout
    • ブランチを移動するのではなく、ワーキングツリー内の指定したパスのみをチェックアウトする。
    • addしていない変更を戻したりするのに使う。
  • git reset HEAD
    • addしたけどコミットしてない変更を戻す(ステージングエリアをクリアする)のに使う。
    • インデックス内の指定したパスのエントリを、コミットされている状態に戻す。
  • git revert HEAD
    • コミットを取り消す。といっても、取り消した状態でコミットしてくれるということらしいので、取り消されたコミット自体はリポジトリに残ってるので、取り出そうと思えばいつでも取り出せる。
    • git reset --hard
    • インデックスとワーキングツリーを指定したコミットの状態に戻す。
  • git merge
    • 指定したブランチの変更を現在のブランチに組み込む。
  • git branch
    • ローカルブランチの一覧を表示する。
  • git branch -a
    • リモートブランチも含めて、ブランチの一覧を表示する。
  • git clone
  • git clone --bare hello hello.git
  • git fetch
  • git pull
    • fetch して merge
  • git branch --track
    • リモートブランチをトラッキングするローカルブランチを作成する。
  • git remote add
    • リモートブランチを追加する。
    • ex) git remote add shared ../hello.git
  • git push









.gitconfigに付け加えといた方がよいもの

[alias]
  co = checkout
  ci = commit
  st = status
  br = branch
  hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short
  type = cat-file -t
  dump = cat-file -p

考え方として注意すべき点、とか。

  • gitが記録するのは、ファイルではなく「変更」であるということ。(LAB9を参照)
  • HEADが指すのはチェックアウトしているバージョン
  • インデックス/ワーキングツリー