Keluaran kawalan sumber Git 2.35

Selepas dua bulan pembangunan, sistem kawalan sumber yang diedarkan Git 2.35 telah dikeluarkan. Git ialah salah satu sistem kawalan versi yang paling popular, boleh dipercayai dan berprestasi tinggi, menyediakan alat pembangunan bukan linear yang fleksibel berdasarkan percabangan dan penggabungan. Untuk memastikan integriti sejarah dan penentangan terhadap perubahan retroaktif, pencincangan tersirat bagi keseluruhan sejarah sebelumnya digunakan dalam setiap komit; ia juga mungkin untuk memperakui teg individu dan komit dengan tandatangan digital pembangun.

Berbanding dengan keluaran sebelumnya, versi baharu itu termasuk 494 perubahan, disediakan dengan penyertaan 93 pembangun, di mana 35 daripadanya mengambil bahagian dalam pembangunan buat kali pertama. Inovasi utama:

  • Kemungkinan untuk menggunakan kekunci SSH untuk menandatangani objek Git secara digital telah diperluaskan. Untuk mengehadkan tempoh sah beberapa kunci, sokongan untuk arahan OpenSSH "sah-sebelum" dan "sah-selepas" telah ditambahkan, yang mana anda boleh memastikan kerja yang betul dengan tandatangan selepas kunci itu diputar oleh salah satu pembangun. Sebelum ini, terdapat masalah dengan pemisahan tandatangan dengan kekunci lama dan baharu - jika anda memadamkan kunci lama, mustahil untuk mengesahkan tandatangan yang dibuat dengannya, dan jika anda meninggalkannya, maka ia akan tetap mungkin untuk buat tandatangan baharu dengan kunci lama, yang telah digantikan dengan kunci lain. Menggunakan sah-sebelum dan sah-selepas anda boleh memisahkan skop kunci berdasarkan masa tandatangan dibuat.
  • Dalam tetapan merge.conflictStyle, yang membolehkan anda memilih mod untuk memaparkan maklumat tentang konflik semasa gabungan, sokongan untuk mod "zdiff3" telah muncul, yang menggerakkan semua baris standard yang dinyatakan pada permulaan atau akhir konflik di luar konflik kawasan, yang membolehkan penyampaian maklumat yang lebih padat.
  • Mod "--staged" telah ditambahkan pada perintah "git stash", yang membolehkan anda menyembunyikan hanya perubahan yang ditambahkan pada indeks, contohnya dalam situasi apabila anda perlu menangguhkan sementara beberapa perubahan kompleks untuk pertama kali tambah apa yang sudah sedia dan uruskan selebihnya selepas beberapa ketika. Mod ini serupa dengan arahan "git commit", hanya menulis perubahan yang diletakkan dalam indeks, tetapi bukannya mencipta komit baharu dalam "git stash β€”staged", hasilnya disimpan dalam kawasan sementara simpanan. Setelah perubahan diperlukan, ia boleh dikembalikan dengan arahan "git stash pop".
  • Penentu format baharu telah ditambahkan pada arahan "git log", "--format=%(describe)", yang membolehkan anda menggabungkan output "git log" dengan output arahan "git describe". Parameter untuk "git describe" ditentukan terus di dalam specifier ("-format=%(describe:match= ,kecualikan= )"), di mana anda juga boleh memasukkan teg yang dipendekkan ("-format=%(describe:tags= )") dan konfigurasikan bilangan aksara heksadesimal untuk mengenal pasti objek (β€œβ€”format=%(describe:abbrev= )"). Sebagai contoh, untuk menyenaraikan 8 komitmen terakhir yang tagnya tidak mempunyai teg calon keluaran dan menentukan pengecam 8 aksara, anda boleh menggunakan arahan: $ git log -8 β€”format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2edb95c94 v056-2.34.1-g642f56f95 v8.g7-b2.34.1-203-b9b. gb2980902bd 2.34.1bbc640f3 v41-212-gffb2.34.1f639d v36-65715- gdf4132cXNUMXadebXNUMX vXNUMX-XNUMX-gXNUMXbXNUMXaXNUMX
  • Tetapan user.signingKey kini menyokong jenis kunci baharu yang tidak terhad kepada jenis "ssh-" dan menentukan laluan fail penuh ke kunci. Jenis alternatif ditentukan menggunakan awalan "key::", contohnya "key::ecdsa-sha2-nistp256" untuk kunci ECDSA.
  • Kelajuan menjana senarai perubahan dalam mod "β€”histogram", dan juga apabila menggunakan pilihan "β€”color-moved-ws", yang mengawal penyerlahan ruang dalam perbezaan warna, telah meningkat dengan ketara.
  • Perintah "git jump", digunakan untuk memberikan Vim maklumat tentang lompatan tepat ke kedudukan yang diingini dalam fail apabila menghuraikan konflik cantuman, melihat perbezaan atau menjalankan operasi carian, memberikan keupayaan untuk mengecilkan konflik cantuman yang diliputi. Contohnya, untuk mengehadkan operasi kepada direktori "foo" sahaja, anda boleh menentukan "git jump merge - foo", dan untuk mengecualikan direktori "Dokumentasi" daripada pemprosesan - "git jump merge - ':^Documentation'"
  • Kerja telah dilakukan untuk menyeragamkan penggunaan jenis "size_t" dan bukannya "unsigned long" untuk nilai yang mewakili saiz objek, yang memungkinkan untuk menggunakan penapis "bersih" dan "smudge" dengan fail yang lebih besar daripada 4 GB pada semua platform, termasuk platform dengan model data LLP64 , jenis "unsigned long" yang dihadkan kepada 4 bait.
  • Pilihan β€œ-empty=(stop|drop|keep)” telah ditambahkan pada arahan β€œgit am”, yang membolehkan anda memilih gelagat untuk mesej kosong yang tidak mengandungi patch semasa menghuraikan patch dari peti mel. Nilai "berhenti" akan menamatkan keseluruhan operasi tampalan, "jatuhkan" akan melangkau tampung kosong dan "kekal" akan membuat komitmen kosong.
  • Menambah sokongan untuk indeks separa (indeks jarang) kepada arahan "git reset", "git diff", "git blame", "git fetch", "git pull" dan "git ls-files" untuk meningkatkan prestasi dan menjimatkan ruang dalam repositori , di mana operasi pengklonan separa (sparse-checkout) dilakukan.
  • Perintah "git sparse-checkout init" telah ditamatkan dan harus digantikan dengan "git sparse-checkout set".
  • Menambah pelaksanaan awal bahagian belakang "boleh direfleksikan" baharu untuk menyimpan rujukan seperti cawangan dan teg dalam repositori. Bahagian belakang baharu menggunakan storan blok yang digunakan oleh projek JGit dan dioptimumkan untuk menyimpan bilangan rujukan yang sangat besar. Bahagian belakang belum disepadukan dengan sistem rujukan dan tidak bersedia untuk kegunaan praktikal.
  • Palet warna perintah "git grep" telah dilaraskan agar sepadan dengan utiliti grep GNU.

Sumber: opennet.ru

Tambah komen