2011-07-28 10 views
2

"main.c"のコピーを私のリポジトリにコミットしました。私はその後、何が起こるかを見るために5つの関数全体を削除しました。これらの機能のうち2つを元に戻したい。git:ファイルの古いリビジョンのパッチ部分のみ

$ git make-patch main.c --interactive > patch_to_add_back_functions.patch 
#interactively choose the functions I want. 
$ patch main.c patch_to_add_back_funcitons.patch 

これを行う方法はありますか?パッチの生成を介して、または何でもgitの考え方をすることができます。

答えて

2

git checkout -pを使用すると、作業ツリーの変更を選択的に破棄することができます。これは、説明した状況に非常に役立ちます。明確化として

  • 、私は、厳密にそれを言えば、「選択的インデックスに戻って自分の状態へのファイルの一部を変更する」でなければなりません「を選択変更を破棄」と言う:他のノートのカップルは興味があるかもしれません。ただし、最後のコミット以降に変更をステージングしていない場合、インデックス内の状態は最後のコミットと同じになります。 gitの中の他のインタラクティブ-pのオプションと同様に

  • 、あなたがダウンし、さらにパッチを分割する、または、あなたも細かいレベルでの変更を破棄する必要がある場合は、電子を押すと、編集できるようになるを押すことができますパッチを直接。 (後者は最初はむしろ混乱するかもしれません)

関連する問題