Mazn.net

やってみて 調べてみて 苦労しなけりゃ 箱は動かじ

gitで過去のコミットを書き換える方法まとめ

      2013/07/15

コミットしてしまった後に恥ずかしい間違いに気づいて書き換えたい時の対処方法。

まずは基本。直前にコミットしたものを修正するには、

  1. ファイル(hoge.txt) を修正する
  2. 修正したファイルをaddする
    $ git add hoge.txt
  3. 修正をコミットする
    $ git commit –amend

これだけです。コミットのコメントのみを書き換えたい時は、3だけを実行すればOK。

次はもっと古い過去を書き換えたい時。ちょっと手順が複雑になります。

  1. 今のブランチ名をい記録する (ここではmasterとします)
  2. 書き換えたい歴史を探す (今回はコミットのハッシュ値が abcd1234 とする)
    $ git log
  3. コミットを取り出す
    $ git checkout abcd1234
  4. 恥ずかしい間違いを修正する
  5. 修正したファイルをaddする
    $ git add hoge.txt
  6. 修正をコミットする
    $ git commit –amend
  7. masterの現在と書き換えたい過去までの間にあったまともな歴史を、今書き換えた過去の上に再構築する
    $ git rebase –onto HEAD abcd1234 master
    ※過去が古ければ古いほど時間がかかります

結論。遠い過去の記憶を掘り起こすのは人と同じで大変です (^^;

 - IT技術, プログラミング

336px

Message

メールアドレスが公開されることはありません。

  関連記事

no image
or条件でのgrep

普段使ったことなかったので覚え書き。 grep で複数の文字列をor条件でマッチ …

no image
USB LANアダプタ GU-1000Air 購入@Ubuntu 9.04 beta

プラネックスのUSBギガビットLANアダプタ GU-1000Airを購入。 搭載 …

no image
WordPress と Twitter の連携

tweetable でWordpressとTwitterを連携させてみました。 …

no image
RDO使ってOpenStack Pikeインストール@CentOS7

RDO を使ってOpenStack Pikeをallinoneでインストールした …

no image
プログラミング言語のベンチマーク

プログラミング言語のベンチマークサイトを発見 http://shootout.a …

no image
パイプでつないだコマンドの戻り値を調べる@bash

シェルスクリプトで、実行したコマンドの戻り値を知る方法は有名ですよね。 以下のよ …

no image
Apacheのプロキシ(proxy)機能

Apacheにはフォワードプロキシやリバースプロキシの機能があります。 フォワー …

no image
screenを起動するとウィンドウの幅が変わる@RHEL6

Windows上からsshログインしたRHEL6でscreenを使うと、ウィンド …

no image
rubyのirbで補完@cygwin

cygwin上でrubyのirbを動かしている時に、ふと補完ができたら便利だと思 …

no image
Windows 10のインストールイメージ(ISO)をダウンロード

Windows 10 のインストールメディア(ISO)のダウンロードツールが公開 …