maeshimaの日記

メモ書きです

入門Gitメモ chapter 5

push, pull, merge

  • 本来git pushには「どのリポジトリに」「どのブランチを」転送するかを指示しないとならないが、git clone で作ったリポジトリでは、デフォルトで、cloneしてきた元のリポジトリに対して、双方のリポジトリで共有しているブランチを全て転送するように設定されるらしい
  • clone してきた元のリポジトリはoriginというニックネームで呼べる
  • merge(pull)したときに、fast-forwardマージじゃない場合、「mergeしたコミット」が作られる。
  • fast-forwardマージでない場合はpushは失敗する?のかな

fast-forwardマージって何? - maeshimaの日記

tag

git tag -a hoge

のように -a オプションを付けると、コメント付きのタグが作れる。

git tag -l -n

のように-nオプションを付けて実行すると、コメントも一緒に見れる

コミット名の指定

  • ログメッセージが"index"で始まるコミットを指定するには ':/index' のように":/"を付ける

コミットの祖先を指定する方法

  • HEAD^2 だと、親が複数居る場合(mergeしたときなど)の二番目の親を指定したことになる
  • HEAD~3 はHEAD^^^ と同じ。つまり一番目の親を三回辿るってこと。
  • ffadfafioda^ みたいにHEAD以外のコミット名にも修飾語を付けることが出来る
  • ":/index~4"みたいなことはできない

git describe

引数として渡されたコミットに一番近いタグを見つけ、そこから数えて何番目のコミットかを含む文字列を返すコマンド。

git rev-parse

HEADとかの名前のついたコミットからハッシュ値を出力するコマンド。git describeの出力も渡せる。

git rev-parse HEAD 

git describe --contains

渡されたコミットを含むタグを使ってコミットに名前を付けるコマンド