1.27.2016

gitignore書式

gitignore書式

  • ハッシュ記号で始まる行はコメントとして扱われる
  • 空行は無視される
  • ! マークで始まる行は残りのパターンを否定します
  • スラッシュ/で終わる場合はディレクトリのみを表す
  • スラッシュ/で始まる場合はルートディレクトリからを表す
  • どこにもスラッシュ/が無い場合はシェルのglobパターンとしてファイル名のベース部分にマッチするか検査される
  • 複数マッチするパターンがある場合は最後にマッチするものが優先される

gitignoreパターン例

  • *~
ファイル名の最後に ~ がある全てのファイル 例) index.html~ 等 
  • *.[ao]
拡張子が a 又は o のファイル 例) hello.a foo.o 
  • t/
t ディレクトリは全て無視される
  • v
ファイル名が v の場合無視されるが v がディレクトリ名の場合は無視されない
  • !*.t
拡張子 t を持つファイルは無視されない

ローカル環境でのみ無視する場合

.gitignoreはバージョン管理の対象外にしたいファイルを登録することができる。登録した内容はリポジトリで管理し、共同で利用しているユーザーと共有できる。しかし、ローカル環境のみ自分独自の設定内容お保持したいファイルがある場合で.gitignoreでその状態を共有したくない場合がある。そのような場合.git/info/excludeにパターンマッチを登録しておくことで他の人と共有せずに除外指定することができる。

1.08.2016

Gitでよく使うコマンドとか

コミット間差分

コミット間での変更及びその周辺をすべて表示

  • git diff commit1 commit2

コミット間で変更されたファイル名をリストアップ

  • git diff --name-only commit1 commit2

コミット間で変更されたファイル名と変更概要をピックアップ

  • git diff --stat commit1 commit2

ブランチ操作

ブランチ名取得

  • git rev-parse --abbrev-ref @

フルネームで取得

  • git symbolic-ref HEAD 2>/dev/null
  • git rev-parse --symbolic-full-name @

ブランチの作成

  • git branch new_branch
HEADに<new_branch>ブランチを作成する。もうすでに<new_branch>がある場合できない。
  • git branch -f new_branch
HEADに<new_branch>ブランチを作成する。もうすでにある場合位置をHEADに移動させる。
  • git checkout -b new_branch <commit>
<commit>に、なければHEADに<new_branch>ブランチを作成しチェックアウトする。もうすでに<new_branch>がある場合できない。
  • git checkout -B new_branch <commit>
<commit>に、なければHEADに<new_branch>ブランチを作成しチェックアウトする。もうすでにある場合位置をHEADに移動させる。

チェックアウト

ひとつ前のチェックアウト先をチェックアウト

  • git checkout -

ひとつ前のコミットをチェックアウト

  • git checkout HEAD^

特定のファイルのみひとつ前のコミットに戻す

  • git checkout HEAD^ -- file.name

ブランチ一括操作

マージ済みのチェックアウト先を除くローカルブランチをすべて削除

  • git branch --merged | grep -vE '^\*' | xargs --replace=% git branch -D %

マージ済みのmaster, developブランチ以外(チェックアウト先を除く)のローカルブランチをすべて削除

  • git branch --merged | grep -vE '^\*|master$|develop$' | xargs --replace=% git branch -D %

master, developブランチ以外(チェックアウト先を除く)のローカルブランチをすべて削除

  • git branch | grep -vE '^\*|master$|develop$' | xargs --replace=% git branch -D %