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
Linuxの高速再起動 – kexec @Debian etch

カーネルバージョン2.6.13からサポートされている機能です。 ランレベル1に移 …

Xprivacyを導入する@Galaxy SIII (SC-06d) 4.1.2

Glaxy-SIIIのrootをとったので、個人情報を守るためにも、Xpriva …

no image
スペースの入ったディレクトリ名やファイル名をスクリプトで処理する@Linux

findコマンドでスペース入ったディレクトリやファイルを検索し、その結果をfor …

no image
firefox アドオン セカンドサーチが動作しない@Firefox 3

いつ頃からかFirefoxのアドオン、セカンドサーチが機能しなくなってしまいまし …

no image
mod_rewriteを使って、特定のファイルをSSLアクセスにする@Apache with RHEL5

TracやWikiなどのWebアプリケーションを使ってて、普段は通常のhttpア …

no image
6to4でIPv6を使ってみる+ip6tables設定@Sakura VPS with CentOS 5

Sakura VPS でIPv6を使ってみた。 方法としては 6to4 と 6r …

no image
ゲストOSの時刻同期@VMware + adjtimeでの調整

Windows上のVMware ServerでゲストOSとしてLinux (De …

no image
Transcend Micro SDHC 32GB UHS-I PREMIUM 300x ベンチマーク

Transcend Micro SDHC 32GB UHS-I PREMIUM …

no image
文字コード一括変換@Linux

最近のLinuxはUTF8が標準になっていますが、ちょっと昔のファイルはEUCだ …

no image
Linuxコンテナ(LXC)を使ってみた@Ubuntu 14.04

Linuxコンテナ(LXC)をUbuntu 14.04上で使用した時のメモです。 …