Git は、コードの変更やコラボレーションを簡単に管理できるようにする非常に人気のあるバージョン管理ツールです。また、指定したファイルの一定期間内の変更履歴を抽出する必要がある場合、どうすればよいでしょうか?今回は、Git コマンドを使用して、一定期間内のファイル変更レコードを抽出する方法を紹介します。
まず、Git の基本的な知識を理解する必要があります。
Git では、すべてのコード提出が記録されます。そしてそれをコミットレコード、つまりコミットとして保存します。各コミットには、異なるコミット レコードを区別するために使用される一意のハッシュ値があります。
すべての送信レコードは Git ウェアハウスに保存され、送信履歴が形成されます。 Git コマンドを使用すると、各送信のハッシュ値、作成者、送信時刻、変更されたファイル、その他の情報を含む送信履歴を表示できます。
Git では、時間間隔を使用して期間を表すことができます。時間間隔を表現するには、次のようないくつかの方法があります。
これらの基本知識を理解した後、時間間隔内のファイル変更レコードを抽出する方法を見てみましょう。
次の送信履歴があるとします。
commit 2942849f3f44e6da111d2b58fe6c24c156835c90 Author: John Doe <john@example.com> Date: Mon Feb 22 11:27:23 2021 +0800 Add README.md commit e0fdb2b0364a73f347f1a1b46c13bfbd5ac07a08 Author: John Doe <john@example.com> Date: Sat Feb 20 14:52:32 2021 +0800 Fix typo in index.html commit 71f6be88b1562fe596c69b88ac9f72dbeac78786 Author: Alice Zhang <alice@example.com> Date: Fri Feb 19 22:33:12 2021 +0800 Update index.html commit 275711456d94c307b6416d94da74e5c8b98497c7 Author: Bob Chen <bob@example.com> Date: Thu Feb 18 09:45:43 2021 +0800 Add new feature commit fd9bf6e768bb58d2a1ebf0b604805d7cca34c563 Author: Alice Zhang <alice@example.com> Date: Wed Feb 17 15:18:02 2021 +0800 Initial commit
送信時間が 2 月 18 日から 2 月 21 日の間に変更されたすべての README.md ファイルを抽出したいと考えています。次のコマンドを使用できます:
git log --since=2021-02-18 --until=2021-02-21 --pretty=format:"%h - %an, %ar : %s" --name-only --grep='README.md'
コマンド分析:
上記のコマンドを実行すると、次の出力は Result になります:
2942849 - John Doe, 29 minutes ago : Add README.md e0fdb2b - John Doe, 2 days ago : Fix typo in index.html
ご覧のとおり、時間間隔と grep 条件を満たす送信レコードは 2 つだけです。これらの送信で変更された特定のファイルを確認したい場合は、--stat オプションを追加できます:
git log --since=2021-02-18 --until=2021-02-21 --pretty=format:"%h - %an, %ar : %s" --name-only --grep='README.md' --stat
コマンド分析:
上記のコマンドを実行すると、次の結果が出力されます。
2942849 - John Doe, 29 minutes ago : Add README.md README.md | 1 + 1 file changed, 1 insertion(+) e0fdb2b - John Doe, 2 days ago : Fix typo in index.html README.md | 2 ++ 1 file changed, 2 insertions(+)
最初の提出物が README であることがわかります。 md ファイルが追加され、2 番目の提出では README.md ファイルが変更され、2 行のコンテンツが追加されました。
送信履歴を表示する上記の方法に加えて、gitblame コマンドを使用して、送信のハッシュ値や作成者などのファイルの変更履歴を表示することもできます。
git blame README.md --since=2021-02-18 --until=2021-02-21
コマンド解析:
上記のコマンドを実行すると、次の結果が出力されます:
2942849f (John Doe 2021-02-22 11:27:23 +0800 1) This is a README file. e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 2) It contains information about the project. e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 3) e0fdb2b0 (John Doe 2021-02-20 14:52:32 +0800 4) Update: fix typo.
ご覧のとおり、最初の行と 4 行目は 2 つの異なる送信であり、どちらも送信者によって送信されています。ジョン・ドゥは提出した。
要約すると、Git コマンドを使用して、一定期間内のファイル変更レコードを抽出できます。これらのコマンドは習得が簡単で、いくつかの基本概念とパラメータを理解するだけで済みます。一定期間内のコード変更履歴を表示する必要がある場合、これらのコマンドを使用すると、関連する送信レコードをすばやく見つけて、変更されたファイルとコンテンツを表示できます。
以上がgit は時間間隔変更ファイルを抽出しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。