2012年2月4日土曜日

gitで過去を改ざんする(2/5)


まず今のヒストリーの中で、必要なところを分解したブランチを作成してみます。

分解する必要があるのは以下。
・途中まで、を1ファイルずつに
・歌詞を最後までと作詞者を追加、を1ファイルずつにわけつつ歌詞と作詞者も別に

やっていきましょう。

「途中まで」をwork_1ブランチに分割し、チェックアウト。
$ git branch work_1 e444489f
$ git checkout work_1
Eclipseの画面で見るとこんな状態。



git resetで、「『途中まで』のコミットをする直前の状態」に時間を巻き戻します。
$ git reset 40e910ba
Eclipseの画面で見るとこんな状態になります。
ディレクトリツリーはこうなって、ファイル追加前の状態になっています。
ファイルもこの通り「途中まで」の内容のままです。



一つずつコミットしていきます。
$ git add sousyunfu.txt
$ git commit -m "途中まで(早春賦)"
こんな状態になります。



もう1ファイルもコミット。
$ git add yashinomi.txt
$ git commit -m "途中まで(椰子の実)"
こうなりました。



この状態でe444489f「途中まで」と 8eb28748「途中まで(椰子の実)」は全く同じ内容になっているはずです。
確認方法はこう。
$ git diff e444489f 8eb28748
何も出なければ、差異なし。



さてここで、今のmasterを8eb28748「途中まで(椰子の実)」(=work_1)から959f5666「歌詞を最後までと作詞者を追加」に繋がった形にしてみます。
まずは今いる位置をwork_1からmasterに移動します。
$ git checkout master
こうなります。HEADがmasterの位置に来ます。



そして、git rebaseを実行。
$ git rebase work_1
First, rewinding head to replay your work on top of it...
Applying: 途中まで
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
No changes -- Patch already applied.
Applying: 歌詞を最後までと作詞者を追加
Applying: 誤字を修正
Applying: レイアウトを修正
$
これでこんな事になります。

つづく。

0 件のコメント:

コメントを投稿