Git入門 その3 -戻す-

さて、前回までは何をしたのでしたっけ?そうそう、導入してバージョンを追加するところまでやったのでしたね。一週間ちょっと経ってしまったので忘れていました…
今回は、バージョンを戻したり、コミットを修正したり、取消したりしてみたいと思います。

コミットの修正

コミットしてから、「しまった!○○をするのを忘れていた!」と思い出すことがあります。ソースファイルを修正して、

$ git commit -a -amend

このようにコマンドを入力します。こうすると、直前のコミットが削除されて、新しいバージョンが追加されます。

バージョンを戻す

プログラムを書き進めていて、いくつか前の時点から書き直したい、という時、簡単にいくつか前の状態に戻せると便利ですよね。ということで、紹介します。

$ git revert 

というコマンドです。の部分は、git logで取得できるハッシュidを指定します。
こんな感じで使います。コミットを3回行っていて、1回目の状態に戻したい時は、

$git log
commit d2afbeb61cf2e96277fefff5b26650f3463bf867
Author: Kuro 
Date:   Wed Jan 26 23:47:52 2011 +0900

    Third commit

commit 6ebbf7e00f9fea8b96c7961568a8044e34762bf0
Author: Kuro 
Date:   Wed Jan 26 23:45:23 2011 +0900

    Second commit

commit c3d83529731600a0f4d5a567fa19cffd8f169ae9
Author: Kuro 
Date:   Wed Jan 26 23:42:58 2011 +0900

    First commit
$git revert c3d83529731600a0f4d5a567fa19cffd8f169ae9

これで、1回目にコミットした時の状態に戻りました。
内部では、指定された時の状態に戻すためのパッチを作って、それをコミットしています。

直前にコミットした時の状態に戻す

間違えてソースコードを改変してしまったときなど、直前にコミットされた時の状態に戻したい時があります。そんな時はこのようにします。

$ git reset --hard

これで直前にコミットした時の状態に戻りました。


次回は、「ブランチ」という概念を扱ってみたいと思います。
「ブランチ」とは、直訳すると、枝という意味なのですが、要するに、開発を途中で分岐させられるということです。安定版と機能追加版の開発を途中から分ける時や、実装方法が複数ある時にブランチで分岐してそれぞれ実装してみて比較する時などに使えます。
なんだか便利そうな機能ですね!
それではまた!!