5

少し前にコミットで削除したコードを取り戻したいです。コードが何だったのか全く覚えていませんが、とても便利なことをしたことは覚えていましたが、必要ないと思ったので削除しました。ただし、そのコードを元に戻す必要がありますが、それがどの関数にあったかしか覚えていません。

その他の情報: その関数を含むファイルには、合計 500 行のコードも含まれています。ある時点でコードが登場したことを私が知っている 30 のコミット範囲があります。

この質問は高レベルの問題です。知りたい情報を手に入れるために、知っている情報をどのように利用できますか?

4

3 に答える 3

3
  1. あなたができる最善のことは検索キーワードを使うことです。関数名を知っている場合

    git log -Sfunction
    

    完璧になります。

  2. パターンがある場合は、各コミットの変更で探すことができます。

    git log --grep=pattern 
    

    そのパターンを含むコミットを一覧表示します。-i大文字と小文字を区別しない一致を追加します。--regex正規表現の一致のために追加

  3. さもないと

    git log -p FIRST...LAST | less
    

    全文が表示されます。検索するか、スクロールして視覚的にスキャンすることができます...


おー。PS。長い機能だとおっしゃっていますので、

    git log --stat FIRST...LAST

----そして、diff statsで多くの削除()が含まれているファイルを監視します。

于 2012-10-10T22:37:02.737 に答える
1

git blame一緒に使う

--reverse

履歴を逆方向ではなく順方向にたどります。行が出現したリビジョンを表示する代わりに、行が存在した最後のリビジョンを表示します。これには、非難するパスが START に存在する START..END のように、さまざまなリビジョンが必要です。

またはgit bisect、興味のあるコードが表示されるコミットを見つけるために、30 個のコミットでバイナリ検索を実行してみてください。

于 2012-10-10T22:08:31.530 に答える
0

関数名、またはその他の重要な単語や変数を覚えている場合は、試すことができますgit grep

git grep <regexp> $(git rev-list <rev1>..<rev2>)

コミット範囲の制限はどこrev1にありますか。rev2すべてのコミット コンテンツ (削除を含む) を grep するため、コードを確実に見つけることができます。

詳細については、コミットされたコードを git 履歴で grep (検索) する方法を参照してください。

于 2012-10-10T21:43:42.017 に答える