Mercurial ユーザのための git メモ
[2013/10/24 追記]今後は、Mercurialユーザのためのgitメモ — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or something を更新しますので、そちらをご覧ください。
git の学習中のメモです。間違いなどありましたら、ご指摘いただけるとありがたいです。
ログ
ログの表示にページャを使わない
$ GIT_PAGER= git log
$ hg log
グラフログを表示する
$ git log --graph
$ hg glog
ログにブランチ名を表示する
$ git log --graph --all --color --pretty=format:'%h %cn %s%Cred%d%Creset' $ git log --oneline --decorate
$ hg log
ブランチを指定してログを表示
$ git log ブランチ名
$ hg log -b ブランチ名
ログに変更されたファイル名を表示する
$ git log --name-only
$ hg log -v
diff
diff のタブ幅を 4 にする
$ git config --global core.pager 'less -x4'
diff 表示を折り返す
$ git config --global core.pager 'less -r'
リビジョンを指定して差分を見る
$ git show リビジョン
$ hg diff -c リビジョン
作業領域のファイルを元に戻す
$ git checkout -- ファイル名
$ hg revert ファイル名
作業領域のすべてのファイルを元に戻す
$ git checkout -- *
$ hg revert -a
コミットしたファイルの変更を管理対象から外す
$ git update-index --assume-unchanged `git ls-files`
管理対象外のファイルは git ls-files -v で状態が小文字で表示される。
コミットの修正
直前のコミットを取り消す
$ git reset --soft HEAD^
$ hg rollback
複数のコミットをまとめる
$ git rebase -i HEAD~3
$ hg histedit チェンジセット
チェンジセットを取り消す変更をコミットする
$ git revert チェンジセット
$ hg backout チェンジセット
リビジョンを指定してアップストリームから pull する
$ git fetch アップストリーム $ git merge リビジョン
$ hg pull -r リビジョン アップストリーム $ hg update
間違ったブランチに pull してしまったので取り消す
$ git reset --hard ORIG_HEAD
$ hg rollback
ブランチ
ブランチの一覧を表示する
$ git branch
$ hg branches
リモートのブランチも表示する場合は、
$ git branch -a
ブランチを作成する
$ git branch ブランチ名
ブランチは作成されるだけで、そのブランチに移動しない。
$ hg branch ブランチ名
そのブランチに移動する。次のコミット時にブランチが作成される。
ブランチを変更する
$ git checkout ブランチ名
$ hg update ブランチ名
ブランチを削除する
$ git branch -d ブランチ名
リモートブランチを削除する場合は、
$ git push origin :ブランチ名
hg ではブランチは削除できません。close することは可能ですが。
指定のチェンジセットが含まれるブランチを調べる
$ git branch --contains チェンジセット
設定を確認する
$ git config --list
$ hg showconfig
日本語ファイル名を git status などで表示する
$ git config core.quotepath false
サブモジュールの削除
- .gitmodules から該当行を削除
- .git/config から該当行を削除
- git rm --cached path/to/submodule (最後に"/"は付けない)