Rilis sistem kontrol sumber terdistribusi Git 2.23

Disampaikan oleh rilis sistem kontrol sumber terdistribusi Git 2.23.0. Git adalah salah satu sistem kontrol versi yang paling populer, andal, dan berkinerja tinggi, menyediakan alat pengembangan non-linier yang fleksibel berdasarkan percabangan dan penggabungan. Untuk memastikan integritas riwayat dan ketahanan terhadap perubahan retroaktif, hashing implisit dari seluruh riwayat sebelumnya di setiap penerapan digunakan, dan dimungkinkan juga untuk mengesahkan masing-masing tag dan penerapan dengan tanda tangan digital pengembang.

Dibandingkan dengan rilis sebelumnya, versi baru ini menyertakan 505 perubahan, disiapkan dengan partisipasi 77 pengembang, 26 di antaranya mengambil bagian dalam pengembangan untuk pertama kalinya. Dasar inovasi:

  • Perintah eksperimental "git switch" dan "git restore" diperkenalkan untuk memisahkan kemampuan "git checkout" yang digabungkan secara longgar, seperti manipulasi cabang (beralih dan membuat) dan memulihkan file di direktori kerja ("git checkout $commit - $filename") atau langsung di area pementasan (“—staging”, tidak memiliki analogi dengan “git checkout”). Perlu dicatat bahwa, tidak seperti "git checkout", "git restore" menghapus file yang tidak terlacak dari direktori yang dipulihkan ("--no-overlay" secara default).
  • Menambahkan opsi “git merge –quit”, yang mirip dengan “-abort”, menghentikan proses penggabungan cabang, tetapi membiarkan direktori kerja tidak tersentuh. Opsi ini dapat berguna jika beberapa perubahan yang dibuat selama penggabungan manual sebaiknya dikeluarkan sebagai penerapan terpisah.
  • Perintah "git clone", "git ambil" dan "git push" sekarang memperhitungkan keberadaan komit di repositori tertaut (bergantian);
  • Ditambahkan opsi “git menyalahkan —ignore-rev” dan “—ignore-revs-file” memungkinkan Anda melewati penerapan yang membuat perubahan kecil (misalnya, perbaikan format);
  • Menambahkan opsi “git cherry-pick —skip” untuk melewati komit yang bertentangan (analog yang diingat dari urutan “git reset && git cherry-pick —lanjutkan”);
  • Menambahkan pengaturan status.aheadBehind, yang secara permanen memperbaiki opsi “git status —[no-]ahead-behind”;
  • Pada rilis ini, "git log" secara default memperhitungkan perubahan akun yang dibuat oleh mailmap, serupa dengan yang dilakukan git shortlog;
  • Operasi pembaruan cache eksperimental grafik komit (core.commitGraph) yang diperkenalkan pada 2.18 telah dipercepat secara signifikan. Juga membuat git for-each-ref lebih cepat saat menggunakan beberapa templat dan mengurangi jumlah panggilan ke auto-gc di “git Fetch —multiple”;
  • "git Branch --list" sekarang selalu menampilkan HEAD terpisah di awal daftar, apa pun lokasinya.

Sumber: opennet.ru

Tambah komentar