【Git】Git入門レッスン_Chapter05_13-16
過去のコミットを打ち消す(コミットログは残る)
git revert
を使い、過去のコミット内容を破棄する方法。
git reset --hard コミットID
を使うと指定したコミットIDからHEADまでのコミットがなくなってしまう。
過去の1コミットのみ内容を破棄する方法。
# 指定したコミットIDの内容を破棄する $ git revert コミットID
viが起動し、コミットメッセージを入力を求められる。
コミットメッセージの先頭には Revert
が付加されている。
コミットする
4行目にRevert理由を追記する。
viを保存終了したら、コミットされる。
追記なしで保存しないで終了しても、コミットはされるので注意。
コミットを中止する
コミットメッセージをすべて削除し保存する。
コミットは中止されても、$ git revert
によってファイルはすでに修正された状態になっている。
元に戻すには、$ git reset --hard HEAD
で最新のコミットに戻す。
過去のコミットを破棄する(ログ上からも削除)
git rebase
を使い、過去のコミットを破棄する。
$ git rebase -i 修正したいコミットの1つ前のコミットID
コマンドの意味
- p, pick = コミットを利用
- r, reword = コミットを利用、コミットメッセージは編集
- e, edit = コミットを利用、修正のため処理を一時停止
- s, squash = コミットを利用、前のコミットと合体
- f, fixup = "squash"に似ているが、コミットメッセージは破棄
- x, exec = シェルコマンドを実行
- 行を削除 = コミットを削除
複数のコミットを1つにまとめる
git rebase
を使い、複数のコミットを1つにまとめる。
# コミット履歴を表示させる $ git log --oneline 511be21 aboutメソッドを追加 6b2873d ファイル名変更 10ce6f1 showメソッドのメッセージを修正 ← これと a8334da showメソッドのメッセージを修正 ← これをまとめる bfda1a2 WhatIsGitにshowメソッドを追加 84cb0c0 WhatIsGitクラスを追加 # まとめる $ git rebase -i bfda1a2(まとめるコミットの1つ前のID)
必ずまとめるコミットを含めてpickする必要がある。
上記の例では、bfda1a2を指定する。
起動したvim画面で、対象のコミットをsquash
に変更して保存。
pick a8334da showメソッドのメッセージを修正 squash 10ce6f1 showメソッドのメッセージを修正 pick 6b2873d ファイル名変更 pick 511be21 aboutメソッドを追加
起動したvim画面でコメントを編集して保存。
過去のコミットを修正する
git rebase
を使い、過去のコミット内容を修正する。
# コミット履歴を表示させる $ git log --oneline 592cc60 aboutメソッドを追加 b0c1201 ファイル名変更 cf0dac2 showメソッドのメッセージを修正 ←ここの内容を修正する bfda1a2 WhatIsGitにshowメソッドを追加 84cb0c0 WhatIsGitクラスを追加 # 書き換える $ git rebase -i bfda1a2
vim画面が表示されるので、対象コミットの行頭コマンドを変更して保存。
e cf0dac2 showメソッドのメッセージを修正 pick b0c1201 ファイル名変更 pick 592cc60 aboutメソッドを追加
この後の操作
- 処理が一時停止中。修正待ちの状態となっている
- ファイルの内容を修正したら、
git add .
- コミットの上書きとなるので
git commit --amend
- 処理再開
git rebase --continue
git rebase後はコミットIDが変わる
git rebase
を使用すると、再コミットされて元のコミットと別物のコミットが生成される。
なので、コミットIDが変わってしまう。
ログにHEADを表示させる
$ git log --oneline --decorate cf0dac2 (HEAD) showメソッドのメッセージを修正 bfda1a2 WhatIsGitにshowメソッドを追加 84cb0c0 WhatIsGitクラスを追加
注意
git reset
git rebase
の使用が許される基準。
git pushする前(未公開)の自分が作ったコミットしかない場合のみOK
参考書
ストーリー形式でGitの使い方を学んでいけるので、1人学習がしやすい本。
- 作者: 川野辺正博
- 出版社/メーカー: 秀和システム
- 発売日: 2012/09/18
- メディア: 単行本
- 購入: 1人 クリック: 32回
- この商品を含むブログ (13件) を見る
- 作者: 川野辺正博
- 出版社/メーカー: 秀和システム
- 発売日: 2014/10/07
- メディア: Kindle版
- この商品を含むブログを見る