2

C++ コードと HTML テンプレート ファイルを組み合わせた大規模なプロジェクトに取り組んでいます。

今日、C++ ファイルに加えた変更 (およびそれらのみ) を別のブランチにマージする必要があることを知りましたが、ご想像のとおり、行ったすべてのコミットを覚えていません。

これらすべての基準に一致するすべてのコミットを git 履歴から検索する方法はありますか?

  • 私によって書かれています
  • commitAと commitの間にあるB
  • .cpp.cまたはファイルへの変更が含まれて.hいます (これらは特定のサブディレクトリにある場合に役立ちます)。
4

2 に答える 2

7

私はついにそれを行う方法を理解しました:

特定の作成者に一致するコミットを検索するには、次の--authorオプションを使用できます。

git log --author=ereOn

コミットからコミットAまでを検索するには、次の形式Bを使用します。A..B

git log 9223253452..HEAD

最後に、特定のファイルまたはパスに関係するコミットのみを気にするために:

git log -- path_or_file

--、オプションの引数の終わりと位置引数の始まりを示すために使用されます。

すべてを組み合わせると、次のようになります。

git log --author=ereOn 9223a6d916c034345..HEAD -- cpp_folder/*

これは魅力のように機能します:)

于 2012-09-17T13:15:19.017 に答える
1

git logを調べてください。実行すると、探しgit log --statている詳細の多くが表示されます。それを grep のようgit log --stat | grep searchtermにパイプして検索できますが、検索用語を含む行しか表示されません。

このフラグを使用して作成者に制限できます--author "your name"

私のマシンでは、git log出力は vim/less を介して実行されます。これにより、次のような vim の検索コマンドを使用してログを検索し/searchterm、用語のすべての出現箇所を検索し、次のヒットnに移動して前のヒットに移動できます。N

のマニュアルページをチェックしてくださいgit log

于 2012-09-17T13:00:18.717 に答える