最終更新:2016-11-10 (木) 13:22:38 (2717d)  

git merge
Top / git merge

Join two or more development histories together

http://git-scm.com/docs/git-merge

usage

  • git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
    	[-s <strategy>] [-X <strategy-option>] [-S[<keyid>]]
    	[--[no-]allow-unrelated-histories]
    	[--[no-]rerere-autoupdate] [-m <msg>] [<commit>…​]
    git merge <msg> HEAD <commit>…​
    git merge --abort

使い方

  • $ git checkout master
    $ git merge hotfix

オプション

  • --squash: ブランチ上での変更をすべてまとめて 1 つのコミットにしてマージできる。
    • ワークツリーとインデックスの状態はマージ後の状態になりますが、マージコミットは作りません。(自分でコミットする)
  • --ff:(デフォルトの設定) もしマージ対象のブランチとfast-forwardの関係にある場合、マージコミットは作られず、ブランチの参照先の更新だけを行います。
  • --no-ff: fast-forwardの関係であっても、必ずマージコミットを作ります。

メモ

  • 2つのコミットAとBとがあるときに、コミットAにいたる歴史がコミットBにいたる歴史にすべて含まれている場合、2つのコミットはファーストフォワードの関係にある、とか、コミットAはコミットBにファーストフォワードする、といいます。

TortoiseGit

  • From
  • Option
    • Squash
    • No Fast Forward
    • No Commit
    • Messages
    • Fast Forward Only
    • Strategy