Mercurialユーザのためのgitメモ
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 commit --allow-empty
リポジトリの最初に空のコミットを作成しておくと、最初のコミットの差分も確認できる。
コミットしたファイルの変更を管理対象から外す
$ 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 ブランチ名
ブランチは作成されるだけで、そのブランチに移動しない。
$ git checkout -b ブランチ名
ブランチを作成して移動する。
$ hg branch ブランチ名
そのブランチに移動する。次のコミット時にブランチが作成される。
ブランチを変更する
$ git checkout ブランチ名
$ hg update ブランチ名
ブランチを削除する
$ git branch -d ブランチ名
リモートブランチを削除する場合は、
$ git push origin :ブランチ名
hgではブランチは削除できません。closeすることは可能ですが。
指定のチェンジセットが含まれるブランチを調べる
$ git branch --contains チェンジセット
ブランチ名の変更
$ git branch -m 現在のブランチ名 新しいブランチ名
指定したチェンジセットのみを現在のブランチに取り込む
チェンジセットの範囲を指定してcherry-pickする
$ git cherry-pick 古い方のチェンジセット^..新しい方のチェンジセット
リモートのリポジトリの表示
$ git remote -v
「origin」は最初にクローンした時に自動的に登録される。
$ hg paths
設定を確認する
$ git config --list
$ hg showconfig
日本語ファイル名をgit statusなどで表示する
$ git config core.quotepath false
サブモジュールの削除
- .gitmodules から該当行を削除
- .git/config から該当行を削除
- git rm --cached path/to/submodule (最後に"/"は付けない)
関連
Date: 2013/10/24