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
sshのちょっと高度な使い方

めっきり使う機会が減ってしまったtelnetの代わりによく使うssh。最近はmo …

no image
ciscoコマンド覚え書き

普段あまりcisco製品触ることないので単なる覚え書き いろいろな情報を一気に取 …

no image
cygwinでWindowsのコマンド(ipconfig等)の文字化けを解消する

WindowsのコマンドをCygwin上で実行すると文字化けしてしまいます。これ …

no image
cygwin上にSphinxをインストール

Cygwin 上に Sphinx をインストールしたときのメモです。 pytho …

no image
デフォルトサーバ証明書の更新 @ CentOS 4

インストール時に自動的にインストールされるApacheのSSLの証明書を更新する …

no image
vim-rubyのインストール@cygwin

昨日はDebian上でのvim-rubyインストールについて書いたが、今回はcy …

no image
iモーションのエクスポート属性と着信音について@SH906i

iモーションを自作の着うたにする場合に、エクスポート属性をつけた場合とつけない場 …

no image
ext3のジャーナル(lost+found)再作成

Linuxのext3ファイルシステムにあるlost+foundはファイルシステム …

no image
viで制御コードの入力

.vimrcといった設定ファイルを書いていると、制御コードを入力したいときがあり …

no image
blu-rayの再生でちらつく@Acer AS 1410 with PowerDVD 10 on Windows 7

Acer AS 1410 で blu-ray を再生してみました。 blu-ra …