
Hai,% username%, hari ini, berita bagus: di domain publik muncul rilis sistem kontrol terdistribusi versi 2.29.0 the Git . Mungkin, di Habré tidak ada gunanya menceritakan apa itu, karena Git masih merupakan salah satu sistem terbaik.
Rilis baru berisi 627 perubahan sekaligus, yang dibuat oleh 89 pengembang. Kami akan memberi tahu Anda tentang perubahan dan peningkatan utama di bawah pemotongan.
- SHA-256 SHA-1 . Git . . , SHA-1 , Git . SHA3-256, SHA2-256, SHA2 Git . , , . , , - — .
- Sekarang Git telah menambahkan kemampuan untuk memasukkan format objek baru saat membuat repositori:
$ git init --object-format=sha256 repo
Initialized empty Git repository in /home/ttaylorr/repo/.git/
$ cd repo
$ echo 'Hello, SHA-256!' >README.md
$ git add README.md
$ git commit -m "README.md: initial commit"
[master (root-commit) 6e92961] README.md: initial commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
$ git rev-parse HEAD
6e929619da9d82c78dd854dfe237c61cbad9e95148c1849b1f96ada5ee800810
Anda hanya dapat memilih antara SHA-1 dan SHA-256, tidak ada kemungkinan untuk menggabungkan hash yang berbeda dalam satu repositori.
- Perintah git fetch dan git push sekarang mendukung spesifikasi tautan pengecualian yang memperluas aturan untuk mencocokkan tautan antar cabang di repositori lokal dan eksternal. Fitur ini akan berguna dalam situasi di mana Anda tidak hanya perlu memilih, tetapi juga mengecualikan beberapa cabang dari pemetaan. Jadi, saat Anda perlu memeriksa semua cabang "refs / heads / *", kecuali satu "refs / heads / ref-to-exclude", sebelumnya Anda harus menentukan daftar lengkap menggunakan skrip ini:
$ git ls-remote origin 'refs/heads/*' |
grep -v ref-to-exclude |
awk '{ print $2:$2 }' |
xargs git fetch origin
- Sekarang ada operator pengecualian "^". Ekspresi dengan operator ini menerima template, tetapi tidak bisa merujuk ke pengidentifikasi objek. Perintah yang menggunakan operator baru mungkin terlihat seperti ini:
$ git fetch origin 'refs/heads/*:refs/heads/*' ^refs/heads/ref-to-exclude
Selain itu, Anda dapat menggunakan pengecualian di pengaturan:
$ git config --add remote.origin.fetch ^refs/heads/foo
- "Git shortlog" sekarang memiliki kemampuan untuk mengelompokkan komit berdasarkan konten bidang tambahan, "Reviewed-by:" dan "Coauthored-by:", dan bukan hanya oleh penulis atau pelaku. Jadi, jika Anda perlu menampilkan daftar pengembang yang paling aktif meninjau, Anda memerlukan perintah:
$ git shortlog -ns --group=trailer:reviewed-by v2.28.0.. | head -n5
40 Eric Sunshine
10 Taylor Blau
4 brian m. carlson
2 Elijah Newren
1 Jeff King
- Beberapa pernyataan --group dapat ditentukan saat permulaan dan menggunakan opsi --format. Jadi, untuk melacak rekan penulis atau kontributor, Anda sekarang perlu menentukan yang berikut:
$ git shortlog -ns --group=author --group=trailer:co-authored-by
$ git shortlog --format="...helped %an on %as" --group=trailer:helped-by v2.28.0..v2.29.0
- Jika konflik terjadi selama operasi git merge, header pesan komit sekarang dikurung untuk secara eksplisit memisahkan data dari komit dari pesan diagnostik Git.
- Pengembang membawa kembali versi kedua dari protokol komunikasi Git, yang telah dinonaktifkan pada rilis 2.27. Dengan demikian, bug yang menyebabkan masalah stabilitas telah diperbaiki.
- Opsi "--first-parent" telah ditambahkan ke perintah git bisect, yang digunakan untuk mendeteksi revisi, untuk mengubah pemilihan komit antara revisi kerja yang diketahui dan revisi tempat masalah terjadi.
Anda dapat melihat semua inovasi di sini .
