Rumah  >  Artikel  >  alat pembangunan  >  git mengekstrak fail pengubahsuaian selang masa

git mengekstrak fail pengubahsuaian selang masa

WBOY
WBOYasal
2023-05-20 09:48:37752semak imbas

Git ialah alat kawalan versi yang sangat popular yang membolehkan kami mengurus pengubahsuaian dan kerjasama kod dengan mudah. Dan apabila kita perlu mengekstrak sejarah pengubahsuaian fail tertentu dalam tempoh masa, bagaimana kita harus melakukannya? Hari ini, kami akan memperkenalkan cara menggunakan arahan Git untuk mengekstrak rekod pengubahsuaian fail dalam selang masa.

Pertama sekali, kita perlu memahami beberapa pengetahuan asas tentang Git:

  1. Rekod penyerahan Git

Dalam Git, setiap penyerahan kod akan direkodkan dan Simpannya sebagai rekod komit, iaitu komit. Setiap komit mempunyai nilai cincang unik yang digunakan untuk membezakan rekod komit yang berbeza.

  1. Sejarah penyerahan Git

Semua rekod penyerahan disimpan dalam repositori Git, membentuk sejarah penyerahan. Kita boleh menggunakan arahan Git untuk melihat sejarah penyerahan, termasuk nilai cincang, pengarang, masa penyerahan, fail yang diubah suai dan maklumat lain bagi setiap penyerahan.

  1. Selang masa Git

Dalam Git, kita boleh menggunakan selang masa untuk mewakili tempoh masa. Terdapat beberapa cara untuk menyatakan selang masa, seperti:

  • Tarikh: 2019-01-01
  • Masa relatif: 2 minggu lalu
  • Tempoh masa: 2019 -01 -01..2019-12-31

Setelah memahami pengetahuan asas ini, mari kita terokai cara mengekstrak rekod pengubahsuaian fail dalam selang masa.

Andaikan kami mempunyai sejarah penyerahan berikut:

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

Kami mahu mengekstrak semua fail README.md yang diubah suai dengan masa penyerahan antara 18 Februari dan 21 Februari. Anda boleh menggunakan arahan berikut:

git log --since=2021-02-18 
        --until=2021-02-21 
        --pretty=format:"%h - %an, %ar : %s" 
        --name-only 
        --grep='README.md'

Analisis arahan:

  • log git: Lihat sejarah penyerahan
  • --sejak=2021-02-18: Lihat sahaja Penyerahan bermula dari 2021-02-18
  • --sehingga=2021-02-21: Hanya lihat serahan sehingga 2021-02-21
  • --pretty=format:" %h - %an, %ar : %s": Tentukan format cetakan, termasuk nilai cincang yang diserahkan, pengarang, masa penyerahan dan maklumat penyerahan
  • --nama sahaja: hanya paparkan nama fail yang diubah suai, jangan paparkan kandungan pengubahsuaian fail
  • --grep='README.md': hanya cari rekod penyerahan yang mengandungi README.md

Selepas melaksanakan arahan di atas, output berikut akan be Result:

2942849 - John Doe, 29 minutes ago : Add README.md
e0fdb2b - John Doe, 2 days ago : Fix typo in index.html

Anda dapat melihat bahawa hanya dua rekod penyerahan memenuhi selang masa dan syarat grep. Jika kami ingin melihat fail tertentu diubah suai dalam penyerahan ini, kami boleh menambah pilihan --stat:

git log --since=2021-02-18 
        --until=2021-02-21 
        --pretty=format:"%h - %an, %ar : %s" 
        --name-only 
        --grep='README.md' 
        --stat

Analisis arahan:

  • --stat: Paparkan senarai fail diubah suai oleh setiap penyerahan dan situasi keseluruhan pengubahsuaian fail

Selepas melaksanakan arahan di atas, keputusan berikut akan dikeluarkan:

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(+)

Seperti yang anda lihat, penyerahan pertama The README Fail .md telah ditambahkan, dan penyerahan kedua mengubah suai fail README.md dan menambah dua baris kandungan.

Selain kaedah melihat sejarah penyerahan di atas, kita juga boleh menggunakan arahan git blame untuk melihat sejarah pengubahsuaian fail, termasuk nilai cincang dan pengarang penyerahan.

git blame README.md 
        --since=2021-02-18 
        --until=2021-02-21

Analisis arahan:

  • git blame: Lihat sejarah pengubahsuaian fail
  • README.md: Tentukan fail untuk dilihat
  • --sejak =2021-02-18: Had untuk melihat hanya sejarah pengubahsuaian dari 2021-02-18
  • --sehingga=2021-02-21: Had untuk melihat hanya sejarah pengubahsuaian sehingga 2021- 02-21

Selepas melaksanakan arahan di atas, keputusan berikut akan dikeluarkan:

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.

Seperti yang anda lihat, baris pertama dan keempat ialah dua penyerahan berbeza, kedua-duanya diserahkan oleh John Doe menyerahkan.

Untuk meringkaskan, kita boleh menggunakan arahan Git untuk mengekstrak rekod pengubahsuaian fail dalam selang masa. Arahan ini mudah dikuasai dan hanya memerlukan pemahaman tentang beberapa konsep dan parameter asas. Apabila kami perlu melihat sejarah pengubahsuaian kod dalam tempoh masa tertentu, arahan ini boleh membantu kami mencari rekod penyerahan yang berkaitan dengan cepat dan melihat fail dan kandungan yang diubah suai.

Atas ialah kandungan terperinci git mengekstrak fail pengubahsuaian selang masa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Bina alat gitArtikel seterusnya:Bina alat git