LoginSignup
53
38

More than 5 years have passed since last update.

gitで過去のコミットを修正したい

Last updated at Posted at 2015-02-02

※【修正しました】SourceTreeを使うとうまくいかないことが何回かあったので、SourceTreeは使わずにコマンドラインを使って作業します。

このコミットを修正したい、とします。

opencv-python_p150121__Git_3.jpg

具体的には、「この行を書かなかった」ことにしたい、とします。

opencv-python_p150121__Git_4.jpg

下準備としてgitのeditorを指定しておきます。

~/.gitconfig
...
[core]
        editor = /usr/bin/vim
        ...
...

まず修正したいコミットの一つ前のコミットのハッシュをコピーします。

opencv-python_p150121__Git_5.jpg

コンソールから以下のように打ちます。

$ git rebase -i c06c668

するとこんなvim編集中の画面が現れます。

opencv-python_p150121_—_vim_—_80×24.jpg

修正したいコミットを「edit」に変えて保存します。

opencv-python_p150121_—_vim_—_80×242.jpg

するとこんな画面が表示されます。

opencv-python_p150121_—_bash_—_80×243.jpg

SourceTreeで見ると、このようになっています。

opencv-python_p150121__Git_6.jpg

修正します。

$ vi convertImage.py

するとSourceTreeは、こんな感じになります。

opencv-python_p150121__Git_7.jpg

コミットします。

$ git commit --amend

残りのコミットを適用します。

$ git rebase --continue

途中でコンフリクトが起きたときは普通に対処し、再度git rebase --continueします。

これで過去のコミットが書き換わります。

今回の記事の内容は全面的に@utwangくんに教えてもらったものです。感謝!

(SourceTree単体でやる方法があれば、ぜひ教えて下さい)


ブログやってます:Weed software

53
38
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
38