直前のコミットを複数のコミットに分割

ログの確認

 $ git log
 * 10c11f3 (HEAD -> master) #3
 * 6716c68 #2
 * d300a47 #1

直前のコミット(#3の修正)を分割する。

現在の状態にタグをつける

 $ git tag master.orig

直前のコミット(#3)の状態をmaster.origとしてタグをつけておく。

直前のコミットの前の状態に戻す

 $ git reset HEAD^
 Unstaged changes after reset:
 M       1.txt
 M       2.txt
 
  • git resetに--hardをオプションを付けてないので、ワーキングツリー下の1.txtと2.txtはHEADの状態のままであり、M(修正)状態にある。
  • この修正状態の1.txtと2.txtに対して、add(もしくはadd -p)とcommitを繰り返す。

コミットを繰り返す

 $ git add -p 1.txt
 $ git commit -m '#4'
 
 $ git add -p 1.txt
 $ git commit -m '#5'
 
 $ git add 2.txt
 $ git commit -m '#6'

結果の確認

 $ git log
 * 1b15243 (HEAD -> master) #6
 * 6f6d7b1 #5
 * 20ce008 #4
 * 1276192 #2
 * 8e72487 #1
 
 $ git diff master.orig HEAD

タグmaster.origとHEADのdiffを取り、差分がなければ、分割漏れがないという事。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2016-02-22 (月) 17:31:11