- お知らせ -
  • 当wikiのプログラムコードの表示を直してみました(ついでに長い行があると全体が下にぶっ飛ぶのも修正)。不具合があればBBSまでご連絡下さい。

git

はじめに Edit

git rebaseの使い方や特徴をよく忘れるので注意点みたいなのものメモ

git rebaseがそもそも何か?というのは、このページを見るよりは以下のサイトをまず見るのがオススメです!!(困ったらPro gitとman)

環境 Edit

  • Cygwin 1.7
  • git version 1.7.0.4

Ubuntu Linuxとかのバージョンによっては1.6だったりして違うところもあるので注意(仕様変わっているとか動かないところもあるかも)

箇条書きまとめメモ Edit

パッと見て思い出せるように羅列(もっと簡単にして ../git覚書 にもまとめておきたいところです)

  • ブランチ(new_func)の分岐した上流の基点を現在のブランチ(current)に付け替える
    $ git checkout new_func  # currentではなく、付け替えたい方のブランチを取り出す
    $ git rebase current  # どこへつけたいかを指定
    
    もしくは、chekcoutを省きたい場合以下でもOK
    $ git rebase current new_func
    
  • (上記のようにcurrentの後にnew_funcを継ぎ足した)rebase直後はフラットになっているのでfast-forward mergeができる!
    (=コミットなしの移動するだけのマージ)
    $ git checkout current  # currentを取り出す
    $ git merge new_func --ff-only  # fast-forwrd merge
    
  • 直前のrebaseやめたい(間違えたのでrebase取りやめる。直前の場合だけ) (※直前以外の場合など詳細)
    $ git reset --hard ORIG_HEAD
    
  • rebase後に、付け替えた元のブランチ(new_funcの移動前の位置)は他に名前をつけられていない場合は履歴を見ても消えたように見えるが、実際はgit gcまでは消えない
    $ gitk --all &
    
    $ git log --graph --pretty=oneline --decorate
    
    などで確認して、もし必要ならブランチ名をつければOK
  • new_funcとcurrentに同じ差分のコミットがあった場合は、rebase時に認識してそのコミットをスルーしてくれる

※文章の羅列にしようと思ったけど、いつもcheckout→rebaseの引数を逆に間違えるのでコマンドも追加

その他 覚書 Edit

あまり思い出さなくてもいいもの

  • Mercurialで言えばMQに相当

参考リンク Edit

はじめにに書いた以外の参考サイト


No comment. Comments/git/git-rebase?

Name:

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New Pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2010-07-30 Fri 03:09:33 JST (2614d)