git
最近、githubとEGitを使い始めたが、なかなか使い方が覚えられない。自分しか使ってないくせに、githubにpushするときに、ときどきrejectされる。http://gitimmersion.com/で、キチンとgitの使い方をお勉強させてもらうことにした。
以下、よく使うコマンド
- git init
- git リポジトリを初期化する。
- 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が指すのはチェックアウトしているバージョン
- インデックス/ワーキングツリー