Git adalah salah satu sistem kontrol versi terdistribusi yang paling banyak digunakan, yang dijelaskan oleh pengembang di seluruh dunia sebagai layanan VCS nomor satu. Ini hanya berjalan dari terminal, tapi beberapa ujung depan tersedia untuk diunduh.
Ini adalah aplikasi sistem kontrol versi sumber terbuka dan gratis yang dapat menangani proyek besar dan kecil dengan efisiensi dan kecepatan maksimum. Program dapat dengan mudah digambarkan sebagai kecil, cepat dan terdistribusi.
Opsi baris perintah
Program ini dilengkapi dengan beberapa perintah yang dapat dengan mudah diingat oleh siapa saja dari get-go. Semua operasi dilakukan secara lokal, dan telah direkayasa untuk mengerjakan kernel Linux.
Perintah yang disertakan adalah menambahkan, membagi dua, cabang, checkout, kloning, komit, diff, fetch, grep, init, log, merge, mv, pull, push, rebase, reset, rm, show, status, dan tag. Anda dapat dengan mudah mempelajari apa yang masing-masing perintah lakukan dengan menjalankan perintah git --help dari jendela terminal.
Fitur sekilas
Bila menggunakan Git, pengguna akan dapat menambahkan file, cabang atau jalur checkout, repositori kloning, membuat repositori Git yang kosong, bergabung dengan beberapa sejarah pengembangan, menampilkan status pohon kerja, perubahan catatan, serta membuat, daftar atau hapus cabang.
Selain itu, aplikasi ini memungkinkan pengguna untuk melihat perubahan antara komit dan pohon kerja, garis cetak yang sesuai dengan pola, melihat komit log, mendownload ref dan objek, mengganti nama atau memindahkan file, symlink dan direktori, memperbarui remote ref, dan menghapusnya. file dari pohon kerja.
Berbagai grafis front-ends ada
Sekalipun hanya perangkat lunak command-line, tersedia berbagai antarmuka pengguna grafis (GUI), termasuk git-cola, SmartGit, GitEye, cekikikan, dan gitg. Proyek ini melampaui utilitas SCM (Software Configuration Management), seperti CVS, Subversion, ClearCase, dan Perforce, dengan melakukan percabangan lokal yang murah, beberapa alur kerja, dan area pementasan yang mudah digunakan.
Intinya
Menyimpulkan, Git adalah sistem kontrol versi gratis yang menampilkan kinerja cepat kilat, mudah dipelajari, dan memiliki jejak yang sangat kecil. Dengan Git Anda dapat melakukan peralihan konteks tanpa gesekan, baris kode berbasis peran, alur kerja berdasarkan fitur, dan eksperimen sekali pakai.
Apa yang baru dalam rilis ini:
- Seorang pembantu berfungsi untuk membaca satu keseluruhan baris ke strbuf yang secara keliru memicu kesalahan OOM di EOF dalam kondisi tertentu, yang telah diperbaiki.
- Selain & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; diajarkan untuk & quot; git kirim email & quot; sebagai cara yang sah untuk memberitahukan bahwa perlu juga mengirimkan salinan karbon ke bagian cuplikan.
- Perbaiki regresi ke & quot; gitk - buang & quot; dengan update terbaru.
- Tidak seperti & quot; git commit-tree & lt; file & quot ;, & quot; git commit-tree -F file & quot; tidak lulus isi file verbatim dan malah menyelesaikan baris yang tidak lengkap pada akhirnya, jika ada. Yang terakhir ini telah diperbarui agar sesuai dengan perilaku yang pertama.
- & quot; git archive & quot ;, terutama bila digunakan dengan pathspec, menyimpan sebuah direktori kosong dalam outputnya, walaupun Git sendiri tidak pernah melakukannya. Ini sudah diperbaiki.
- API error-proofing yang terjadi juga peringatan dari GCC.
- & quot; git gc & quot; mencoba untuk menghindari berjalan dua contoh pada saat yang sama dengan membaca dan menulis pid / host dari dan ke file kunci; Ini digunakan untuk menggunakan format fscanf () yang salah saat membaca, yang telah diperbaiki.
- Tes linter telah diajarkan bahwa kami tidak menyukai & quot; echo -e & quot;.
- Kode cmp.std.c nitpick.
- & quot; git jelaskan --match & quot; belajar mengambil beberapa pola dalam seri v2.13, namun fitur tersebut mengabaikan pola setelah yang pertama dan sama sekali tidak bekerja. Ini sudah diperbaiki.
- & quot; git cat-file --textconv & quot; mulai segfaulting baru-baru ini, yang telah diperbaiki.
- Pola bawaan untuk mendeteksi & quot; header fungsi & quot; untuk HTML tidak cocok .. elemen tanpa atribut apapun, yang telah diperbaiki.
- & quot; git mailinfo & quot; Lepas dalam decoding dikutip printable dan menghasilkan sampah saat kedua huruf setelah tanda sama tidak heksadesimal. Ini sudah diperbaiki.
- Dokumentasi untuk '-X' untuk gabungan secara menyesatkan ditulis untuk menunjukkan bahwa & quot; -s theirs & quot; ada, yang tidak terjadi.
- Eja nama sistem kami sebagai & quot; Git & quot; dalam output dari skrip request-pull.
- Perbaikan untuk beberapa masalah akses memori yang diidentifikasi oleh Valgrind.
- Backports setara moral tahun 2015 memperbaiki persaingan polling dari gnulib hulu untuk memperbaiki kerusakan sesekali pada HPE NonStop.
- Di & quot; - format = ... & quot; pilihan dari & quot; git untuk-masing-masing-ref & quot; perintah (dan teman-temannya, yaitu mode daftar cabang & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (misalnya, "%)" (misalnya:) & quot ;, & quot;% (body:) & quot; digunakan untuk keluar dari kesalahan. Sebaliknya, perlakukan mereka seolah-olah kolon dan string kosong yang mengikutinya tidak ada di sana.
- Pengguna dengan & quot; color.ui = selalu & quot; dalam konfigurasi mereka dipecahkan oleh perubahan baru-baru ini yang membuat perintah plumbing untuk memperhatikannya sebagai tambalan yang dibuat secara internal oleh & quot; git add -p & quot; diwarnai (heh) dan dibuat tidak dapat digunakan lagi. Ini sudah diperbaiki.
- & quot; git cabang -M a & quot; sedangkan pada cabang yang sama sekali tidak berhubungan dengan cabang atau cabang b tidak berperilaku buruk ketika beberapa worktree sedang digunakan. Ini sudah diperbaiki.
- & quot; git ekspor cepat & quot; dengan opsi -M / -C dikeluarkan & quot; salin & quot; instruksi pada jalur yang dimodifikasi secara bersamaan, yang salah.
- Perintah pos pemeriksaan & git fast-import & quot; tidak menyiram pembaruan pada ref dan tanda kecuali setidaknya satu objek diciptakan sejak pos pemeriksaan terakhir, yang telah diperbaiki, karena hal-hal ini dapat terjadi tanpa ada objek baru yang tercipta.
- Skrip untuk mengarahkan TravisCI telah direorganisasi dan kemudian melakukan pengoptimalan untuk menghindari siklus pengeluaran di cabang yang tipnya telah diterapkan telah diterapkan.
- & quot; git fetch: & quot; memungkinkan nama objek di sisi saat sisi lain menerima permintaan seperti itu sejak Git v2.5, namun dokumentasi dibiarkan basi.
- Regresi di 2.11 yang membuat kode untuk membaca daftar toko objek alternatif dibanjiri akhir string telah diperbaiki.
Apa yang baru di versi 2.15.1:
- Seorang pembantu berfungsi untuk membaca satu keseluruhan baris ke strbuf yang secara keliru memicu kesalahan OOM di EOF dalam kondisi tertentu, yang telah diperbaiki.
- Selain & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; diajarkan untuk & quot; git kirim email & quot; sebagai cara yang sah untuk memberitahukan bahwa perlu juga mengirimkan salinan karbon ke bagian cuplikan.
- Perbaiki regresi ke & quot; gitk - buang & quot; dengan update terbaru.
- Tidak seperti & quot; git commit-tree & lt; file & quot ;, & quot; git commit-tree -F file & quot; tidak lulus isi file verbatim dan malah menyelesaikan baris yang tidak lengkap pada akhirnya, jika ada. Yang terakhir ini telah diperbarui agar sesuai dengan perilaku yang pertama.
- & quot; git archive & quot ;, terutama bila digunakan dengan pathspec, menyimpan sebuah direktori kosong dalam outputnya, walaupun Git sendiri tidak pernah melakukannya. Ini sudah diperbaiki.
- API error-proofing yang terjadi juga peringatan dari GCC.
- & quot; git gc & quot; mencoba untuk menghindari berjalan dua contoh pada saat yang sama dengan membaca dan menulis pid / host dari dan ke file kunci; Ini digunakan untuk menggunakan format fscanf () yang salah saat membaca, yang telah diperbaiki.
- Tes linter telah diajarkan bahwa kami tidak menyukai & quot; echo -e & quot;.
- Kode cmp.std.c nitpick.
- & quot; git jelaskan --match & quot; belajar mengambil beberapa pola dalam seri v2.13, namun fitur tersebut mengabaikan pola setelah yang pertama dan sama sekali tidak bekerja. Ini sudah diperbaiki.
- & quot; git cat-file --textconv & quot; mulai segfaulting baru-baru ini, yang telah diperbaiki.
- Pola bawaan untuk mendeteksi & quot; header fungsi & quot; untuk HTML tidak cocok .. elemen tanpa atribut apapun, yang telah diperbaiki.
- & quot; git mailinfo & quot; Lepas dalam decoding dikutip printable dan menghasilkan sampah saat kedua huruf setelah tanda sama tidak heksadesimal. Ini sudah diperbaiki.
- Dokumentasi untuk '-X' untuk gabungan secara menyesatkan ditulis untuk menunjukkan bahwa & quot; -s theirs & quot; ada, yang tidak terjadi.
- Eja nama sistem kami sebagai & quot; Git & quot; dalam output dari skrip request-pull.
- Perbaikan untuk beberapa masalah akses memori yang diidentifikasi oleh Valgrind.
- Backports setara moral tahun 2015 memperbaiki persaingan polling dari gnulib hulu untuk memperbaiki kerusakan sesekali pada HPE NonStop.
- Di & quot; - format = ... & quot; pilihan dari & quot; git untuk-masing-masing-ref & quot; perintah (dan teman-temannya, yaitu mode daftar cabang & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (misalnya, "%)" (misalnya:) & quot ;, & quot;% (body:) & quot; digunakan untuk keluar dari kesalahan. Sebaliknya, perlakukan mereka seolah-olah kolon dan string kosong yang mengikutinya tidak ada di sana.
- Pengguna dengan & quot; color.ui = selalu & quot; dalam konfigurasi mereka dipecahkan oleh perubahan baru-baru ini yang membuat perintah plumbing untuk memperhatikannya sebagai tambalan yang dibuat secara internal oleh & quot; git add -p & quot; diwarnai (heh) dan dibuat tidak dapat digunakan lagi. Ini sudah diperbaiki.
- & quot; git cabang -M a & quot; sedangkan pada cabang yang sama sekali tidak berhubungan dengan cabang atau cabang b tidak berperilaku buruk ketika beberapa worktree sedang digunakan. Ini sudah diperbaiki.
- & quot; git ekspor cepat & quot; dengan opsi -M / -C dikeluarkan & quot; salin & quot; instruksi pada jalur yang dimodifikasi secara bersamaan, yang salah.
- Perintah pos pemeriksaan & git fast-import & quot; tidak menyiram pembaruan pada ref dan tanda kecuali setidaknya satu objek diciptakan sejak pos pemeriksaan terakhir, yang telah diperbaiki, karena hal-hal ini dapat terjadi tanpa ada objek baru yang tercipta.
- Skrip untuk mengarahkan TravisCI telah direorganisasi dan kemudian melakukan pengoptimalan untuk menghindari siklus pengeluaran di cabang yang tipnya telah diterapkan telah diterapkan.
- & quot; git fetch: & quot; memungkinkan nama objek di sisi saat sisi lain menerima permintaan seperti itu sejak Git v2.5, namun dokumentasi dibiarkan basi.
- Regresi di 2.11 yang membuat kode untuk membaca daftar toko objek alternatif dibanjiri akhir string telah diperbaiki.
Apa yang baru di versi 2.15.0:
- Seorang pembantu berfungsi untuk membaca satu keseluruhan baris ke strbuf yang secara keliru memicu kesalahan OOM di EOF dalam kondisi tertentu, yang telah diperbaiki.
- Selain & quot; cc: # cruft & quot ;, & quot; cc: a@dd.re.ss # cruft & quot; diajarkan untuk & quot; git kirim email & quot; sebagai cara yang sah untuk memberitahukan bahwa perlu juga mengirimkan salinan karbon ke bagian cuplikan.
- Perbaiki regresi ke & quot; gitk - buang & quot; dengan update terbaru.
- Tidak seperti & quot; git commit-tree & lt; file & quot ;, & quot; git commit-tree -F file & quot; tidak lulus isi file verbatim dan malah menyelesaikan baris yang tidak lengkap pada akhirnya, jika ada. Yang terakhir ini telah diperbarui agar sesuai dengan perilaku yang pertama.
- & quot; git archive & quot ;, terutama bila digunakan dengan pathspec, menyimpan sebuah direktori kosong dalam outputnya, walaupun Git sendiri tidak pernah melakukannya. Ini sudah diperbaiki.
- API error-proofing yang terjadi juga peringatan dari GCC.
- & quot; git gc & quot; mencoba untuk menghindari berjalan dua contoh pada saat yang sama dengan membaca dan menulis pid / host dari dan ke file kunci; Ini digunakan untuk menggunakan format fscanf () yang salah saat membaca, yang telah diperbaiki.
- Tes linter telah diajarkan bahwa kami tidak menyukai & quot; echo -e & quot;.
- Kode cmp.std.c nitpick.
- & quot; git jelaskan --match & quot; belajar mengambil beberapa pola dalam seri v2.13, namun fitur tersebut mengabaikan pola setelah yang pertama dan sama sekali tidak bekerja. Ini sudah diperbaiki.
- & quot; git cat-file --textconv & quot; mulai segfaulting baru-baru ini, yang telah diperbaiki.
- Pola bawaan untuk mendeteksi & quot; header fungsi & quot; untuk HTML tidak cocok .. elemen tanpa atribut apapun, yang telah diperbaiki.
- & quot; git mailinfo & quot; Lepas dalam decoding dikutip printable dan menghasilkan sampah saat kedua huruf setelah tanda sama tidak heksadesimal. Ini sudah diperbaiki.
- Dokumentasi untuk '-X' untuk gabungan secara menyesatkan ditulis untuk menunjukkan bahwa & quot; -s theirs & quot; ada, yang tidak terjadi.
- Eja nama sistem kami sebagai & quot; Git & quot; dalam output dari skrip request-pull.
- Perbaikan untuk beberapa masalah akses memori yang diidentifikasi oleh Valgrind.
- Backports setara moral tahun 2015 memperbaiki persaingan polling dari gnulib hulu untuk memperbaiki kerusakan sesekali pada HPE NonStop.
- Di & quot; - format = ... & quot; pilihan dari & quot; git untuk-masing-masing-ref & quot; perintah (dan teman-temannya, yaitu mode daftar cabang & quot; git branch / tag & quot;), & quot;% (atom:) & quot; (misalnya, "%)" (misalnya:) & quot ;, & quot;% (body:) & quot; digunakan untuk keluar dari kesalahan. Sebaliknya, perlakukan mereka seolah-olah kolon dan string kosong yang mengikutinya tidak ada di sana.
- Pengguna dengan & quot; color.ui = selalu & quot; dalam konfigurasi mereka dipecahkan oleh perubahan baru-baru ini yang membuat perintah plumbing untuk memperhatikannya sebagai tambalan yang dibuat secara internal oleh & quot; git add -p & quot; diwarnai (heh) dan dibuat tidak dapat digunakan lagi. Ini sudah diperbaiki.
- & quot; git cabang -M a & quot; sedangkan pada cabang yang sama sekali tidak berhubungan dengan cabang atau cabang b tidak berperilaku buruk ketika beberapa worktree sedang digunakan. Ini sudah diperbaiki.
- & quot; git ekspor cepat & quot; dengan opsi -M / -C dikeluarkan & quot; salin & quot; instruksi pada jalur yang dimodifikasi secara bersamaan, yang salah.
- Perintah pos pemeriksaan & git fast-import & quot; tidak menyiram pembaruan pada ref dan tanda kecuali setidaknya satu objek diciptakan sejak pos pemeriksaan terakhir, yang telah diperbaiki, karena hal-hal ini dapat terjadi tanpa ada objek baru yang tercipta.
- Skrip untuk mengarahkan TravisCI telah direorganisasi dan kemudian melakukan pengoptimalan untuk menghindari siklus pengeluaran di cabang yang tipnya telah diterapkan telah diterapkan.
- & quot; git fetch: & quot; memungkinkan nama objek di sisi saat sisi lain menerima permintaan seperti itu sejak Git v2.5, namun dokumentasi dibiarkan basi.
- Regresi di 2.11 yang membuat kode untuk membaca daftar toko objek alternatif dibanjiri akhir string telah diperbaiki.
Apa yang baru di versi 2.14.1:
- Rilis ini meneruskan port untuk & quot; ssh: //..." URL dari Git v2.7.6
Apa yang baru di versi 2.9.3:
- * Fungsi pembantu yang mengambil isi dari objek komit dan mendapati baris subjeknya tidak mengabaikan baris kosong, seperti yang biasa dilakukan oleh codepath lain. Buatlah mengabaikan baris kosong yang harus dicocokkan.
- Git tidak tahu apa isi indeks seharusnya untuk jalur yang ditambahkan dengan "git add -N", jadi "git grep --cached" tidak boleh menunjukkan klik (atau tidak menunjukkan adanya klik, dengan -L ) di jalan seperti itu, tapi logika itu tidak berlaku untuk "git grep", yaitu mencari di file pohon kerja. Tapi kami melakukannya karena kesalahan, yang telah diperbaiki.
- "git rebase -i --autostash" tidak mengembalikan perubahan auto-stashed saat operasi dibatalkan.
- "git commit --amend --allow-empty-message -S" untuk komit tanpa badan pesan bisa salah mengidentifikasi di mana header objek komit berakhir.
- Update mark-up lebih lanjut untuk string typeset yang diharapkan secara harfiah diketik oleh pengguna akhir dengan font fixed-width.
- Untuk waktu yang lama, kami membawa komentar dalam kode yang mengatakan bahwa keluaran berwarna kami hanya akan bekerja bila kami menggunakan fprintf / fputs pada Windows, yang tidak lagi menjadi kasus dalam beberapa tahun terakhir.
- "gc.autoPackLimit" ketika diset ke 1 seharusnya tidak memicu repacking saat hanya ada satu paket, namun kode tersebut dihitung dengan buruk dan melakukannya.
- Salah satu bagian dari "git am" memiliki fungsi pembantu aneh yang memanggil barang dari luar "miliknya" sebagai lawan memanggil apa yang kita miliki "milik kita", yang tidak netral secara gender dan juga tidak sesuai dengan sistem lainnya di mana Barang-barang di luar biasanya disebut "milik mereka" berbeda dengan "milik kita".
- Kerangka uji mempelajari test_match_signal penolong baru untuk memeriksa kode keluar agar tidak terbunuh oleh sinyal yang diharapkan.
- "git blame -M" melewatkan satu baris yang dipindahkan ke dalam file.
- Perbaiki codepath yang baru diperkenalkan yang terlibat dalam operasi submodule paralel, yang berhenti membaca terlalu dini, dan bisa saja membuang-buang CPU saat mencoba menulis di bawah kondisi kotak sudut.
- "git grep -i" telah diajarkan untuk melipat kasus di lokal non-ascii dengan benar.
- Tes yang menggunakan "mktemp" tanpa syarat mengetahui bahwa perintah tersebut tidak selalu tersedia di mana-mana.
- "file git blame" memungkinkan garis keturunan garis dalam isi "arsip" yang tidak terikat dan tidak dilapisi untuk diperiksa, namun menolak bila "file" tidak muncul dalam komit saat ini. Saat "file" dibuat dengan mengganti nama file yang ada (tapi perubahannya belum dilakukan), batasan ini tidak perlu ketat.
- "git add -N dir / file & amp; git write-tree" menghasilkan pohon yang salah bila ada jalur lain di direktori yang sama dengan yang seperti "file".
- "git fetch http: // user: pass @ host / repo ..." gosok bagian userinfo, tapi "git push" tidak.
- Bug usia tua yang menyebabkan "kelalaian git diff --ignore - space - at - eol" telah diperbaiki.
- "git notes merge" memiliki kode untuk melihat apakah ada jalan (dan gagal jika terjadi) dan kemudian membuka jalan untuk menulis (jika tidak). Ganti dengan terbuka dengan O_EXCL.
- "git pack-objects" dan "git index-pack" kebanyakan beroperasi dengan off_t saat membicarakan offset objek dalam paketfile, namun ada beberapa tempat yang menggunakan "unsigned long" untuk mempertahankan nilai tersebut, memimpin ke pemotongan yang tidak diinginkan.
- Update terbaru untuk "git daemon" mencoba mengaktifkan tingkat kunci KEEPALIVE, namun saat diluncurkan melalui inetd, deskriptor file input standar mungkin tidak perlu dihubungkan ke soket. Menekan kesalahan ENOTSOCK dari setsockopt ().
- FreeBSD terbaru berhenti membuat perl tersedia di / usr / bin / perl; ubah default jalur bawaan ke / usr / local / bin / perl pada rilis FreeBSD yang tidak terlalu kuno.
- "status git" belajar menyarankan "menggabungkan - menyongsong" selama penggabungan yang bertentangan, seperti yang sudah menyarankan "rebase --abort" selama rebase yang bertentangan.
- Sumber .c / .h ditandai seperti itu di file gitattributes kami sehingga "git diff -W" dan teman akan bekerja lebih baik.
- Tes autoconf yang ada yang ada untuk kebutuhan untuk terhubung dengan perpustakaan pthread tidak memeriksa semua fungsi dari pthread libraries; FreeBSD baru-baru ini memiliki beberapa fungsi dalam libc tapi tidak pada yang lain, dan kita salah mengira terhubung dengan libc sudah cukup jika tidak.
- Izinkan tes daemon http tes Travis CI.
- Pengguna fungsi parse_options_concat () API perlu mengalokasikan slot ekstra terlebih dahulu dan mengisinya dengan OPT_END () saat mereka ingin menentukan sekumpulan opsi yang didukung secara dinamis, yang membuat kode menjadi rawan kesalahan dan sulit dibaca. Ini telah dikoreksi dengan mengutak-atik API untuk mengalokasikan dan mengembalikan salinan opsi "struct pilihan" baru.
- Penggunaan strbuf dalam "git rm" untuk membangun nama file yang akan dihapus sedikit suboptimal, yang telah diperbaiki.
- "git commit --help" said "--no-verify" hanya tentang melewatkan hook pra-komit, dan gagal mengatakan bahwa itu juga melewatkan hook commit-msg.
- "git merge" di Git v2.9 diajarkan untuk melarang penggabungan garis sejarah yang tidak terkait secara default, tapi itulah jenis mode "--rejoin" dari "subtree git" (di contrib /) ingin melakukannya "git subtree" telah diajarkan untuk menggunakan opsi "- orow-unrelated-historicalies" untuk menggantikan default.
- Prosedur pembuatan pembantu "git persistent-https" (di contrib /) telah diperbarui sehingga dapat dibangun dengan versi Go yang lebih baru.
- Ada pengoptimalan yang digunakan dalam "git diff $ treeA $ treeB" untuk meminjam salinan yang sudah dicentang di pohon kerja bila diketahui sama dengan gumpalan yang dibandingkan, mengharapkan agar sela sebuah file lebih cepat daripada membacanya dari toko objek, yang melibatkan menggembungkan dan menerapkan delta. Namun ini ditendang bahkan saat salinan check-out harus melalui konversi konversi-ke-git (termasuk filter bersih), yang mengalahkan keseluruhan titik pengoptimalan. Pengoptimalan telah dinonaktifkan saat konversi diperlukan.
- "git -c grep.patternType = extended log --basic-regexp" tidak berfungsi karena API internal untuk mengakses mesin grep tidak dirancang dengan baik.
- Port Windows gagal dalam beberapa pengujian pada t4130, karena kurangnya inum pada nilai yang dikembalikan dengan emulasi lstat (2).
- Karakter dalam label yang ditampilkan untuk tag / ref untuk komit dalam keluaran "gitweb" sekarang benar-benar lolos untuk keluaran HTML yang benar.
- FreeBSD dapat berbohong saat menanyakan mtime sebuah direktori, yang membuat kode tembolok yang tidak terlacak jatuh kembali ke jalur lambat, yang pada gilirannya menyebabkan tes gagal di t7063 karena ingin memverifikasi perilaku jalur cepat.
- Kritik kompilasi squelch untuk netmalloc (di compat /) library.
- Dokumentasi API untuk hashmap tidak jelas apakah hashmap_entry dapat dibuang dengan aman tanpa pertimbangan lain. Nyatakan bahwa aman untuk melakukannya.
- Penulisan ulang "git am" yang tidak begitu baru yang mulai melakukan panggilan internal ke mesin komit memiliki regresi yang tidak diinginkan, dalam hal tidak peduli berapa detik waktu yang dibutuhkan untuk menerapkan banyak tambalan, cap waktu timbal balik yang dihasilkan untuk komit yang dihasilkan semua sama.
- "git difftool ..." yang dimulai di subdirektori gagal menafsirkan jalan relatif terhadap direktori itu, yang telah diperbaiki.
Apa yang baru di versi 2.9.1:
- Saat "git daemon" dijalankan tanpa - [init-] timeout yang ditentukan, koneksi dari klien yang diam-diam berjalan offline dapat bertahan lama, membuang-buang sumber daya. Tingkat KEEPALIVE soket telah diaktifkan untuk memungkinkan OS memperhatikan koneksi gagal semacam itu.
- Perintah dalam keluarga `git log` mengambil% C (auto) dalam format string ubahsuaian. Ini tanpa syarat mengubah warnanya, mengabaikan - tidak ada warna atau dengan --color = auto saat output tidak terhubung ke tty; ini dikoreksi untuk membuat format benar-benar berperilaku sebagai "otomatis".
- "git rev-list --count" yang ukurannya terbatas dengan opsi "-n" tidak berjalan dengan baik dengan penghitungan dioptimalkan untuk melihat indeks bitmap.
- "git show -W" (memperpanjang hunks untuk menutupi keseluruhan fungsi, dibatasi oleh garis yang sesuai dengan pola "funcname") yang digunakan untuk menampilkan keseluruhan file saat sebuah perubahan menambahkan keseluruhan fungsi di akhir file, yang telah diperbaiki.
- Kumpulan dokumentasi telah diperbarui sehingga perintah literal, variabel konfigurasi dan variabel lingkungan secara konsisten disusun dalam font fixed-width dan tebal dalam manpages.
- "git svn propset" subcommand yang ditambahkan dalam 2.3 hari didokumentasikan sekarang.
- Dokumentasi mencoba untuk secara konsisten mengeja "GPG"; ketika mengacu pada nama program tertentu, "gpg" digunakan.
- "git reflog" berhenti saat melihat entri yang menunjukkan acara pembuatan cabang (alias "belum lahir"), yang membuatnya tampak seolah-olah reflog terpotong.
- Scriptlet git-prompt (di contrib /) tidak bersahabat dengan mereka yang menggunakan "set -u", yang telah diperbaiki.
- Codepath yang menggunakan alloca (3) untuk menempatkan jumlah data yang tidak terbatas di stack telah diperbarui agar tidak melakukannya.
- "git update-index --add --chmod = + x file" dapat digunakan sebagai jalan keluar, tapi bukan hal yang ramah untuk memaksa orang yang perlu menggunakannya secara teratur. "git add --chmod = + x file" dapat digunakan sebagai gantinya.
- Bangun perbaikan untuk gnome-keyring (dalam contrib /)
- "status git" biasa mengatakan "direktori kerja" saat itu berarti "pohon kerja".
- Komentar tentang kerepotan FreeBSD yang tidak berperasaan telah diklarifikasi dengan nomor versi (9.x dan sebelum rusak, yang baru OK).
- "git cherry-pick A" mengerjakan cabang yang belum lahir, tapi "git cherry-pick A..B" tidak.
- "git add -i / -p" belajar untuk menghormati diff.compactionHeuristic eksperimental kenop, sehingga pengguna dapat bekerja pada split bunk yang sama dengan "git diff" output.
- "log --graph --format =" pelajari bahwa "% & gt; | (N)" menentukan lebar relatif terhadap tepi kiri terminal, tidak relatif terhadap area untuk menggambar teks yang berada di sebelah kanan keturunan -graf bagian. Ini juga sekarang menerima N negatif yang berarti batas kolom relatif terhadap batas kanan.
- Aturan kepemilikan untuk bagian memori yang menyimpan referensi yang akan diambil dalam "git fetch" itu tidak benar, yang telah dibersihkan.
- "git bisect" membuat panggilan internal ke "git diff-tree" saat terbelahnya bisikan pelakunya, namun panggilan ini tidak menginisialisasi struktur data untuk lolos ke API diff-tree dengan benar.
- Format berbagai data (dan cara memvalidasi mereka) di mana kita menggunakan tanda tangan GPG telah didokumentasikan.
- Perbaiki regresi yang tidak diinginkan di v2.9 yang melanggar "clone --depth" yang memulai kembali ke submodul dengan memaksa submodul untuk juga dikloning secara dangkal, yang banyak contoh server yang menghosting hulu submodul tidak disiapkan. / li>
- Perbaiki limbah yang tidak perlu dengan penggunaan idiomis ': $ {VAR = default}' untuk menetapkan nilai default, tanpa melampirkan tanda petik.
- Beberapa kode khusus platform memiliki deklarasi non-ANSI yang ketat tentang fungsi C yang tidak mengambil parameter apa pun, yang telah diperbaiki.
- Kode internal yang digunakan untuk menunjukkan offset zona waktu lokal tidak siap untuk menangani cap waktu di luar tahun 2100, dan memberi nilai offset palsu kepada pemanggil. Gunakan yang lebih jinak mencari +0000 dan biarkan "git log" terjadi dalam kasus seperti itu, bukan aborting.
- Salah satu dari empat seruan readlink (1) di test suite kami telah ditulis ulang sehingga tes dapat berjalan di sistem tanpa perintah (yang lainnya ada dalam kerangka pengujian valgrind dan t9802).
- t / kebutuhan perf / usr / bin / waktu dengan ekstensi GNU; seruan itu diperbarui untuk "mengobrol" di Darwin.
- Bug, yang menyebabkan "git p4" saat berjalan dengan mode verbose untuk melaporkan jalur yang diabaikan karena awalan cabang tidak benar, telah diperbaiki; perintah tersebut mengatakan "Mengabaikan file di luar awalan" untuk jalur yang _inside _.
- Dokumentasi tingkat atas "git help git" masih menunjuk pada kumpulan dokumentasi yang ada di repositori google-code yang sudah tidak berfungsi lagi. Perbaruinya untuk menunjuk https://git.github.io/htmldocs/git.html sebagai gantinya.
Apa yang baru di versi 2.9.0:
Baru di GIT 2.8.1 (5 April 2016)
Apa yang baru di versi 2.8.1:
- "membuat rpmbuild" target rusak sebagai masukannya, git.spec.in, tidak diperbarui agar cocok dengan file yang dideskripsikan yang telah diubah namanya baru-baru ini. Ini sudah diperbaiki.
Apa yang baru di versi 2.7.3:
- Secara tradisional, tes yang mencoba perintah yang bekerja pada konten di pohon kerja diberi nama dengan "worktree" dalam nama file mereka, namun dengan penambahan subskrip "git worktree" baru-baru ini, yang pengujiannya juga dinamai serupa, menjadi sulit untuk membedakan mereka. Tes tradisional telah diubah namanya menjadi menggunakan "pohon kerja" sebagai upaya untuk membedakannya.
- Banyak codepath lupa untuk memeriksa nilai pengembalian dari git_config_set (); fungsi dibuat untuk die () untuk memastikan kita tidak melanjutkan saat menetapkan variabel konfigurasi gagal.
- Penanganan kesalahan saat menulis ke dalam proses asynchronous internal telah dibuat lebih kuat, yang mengurangi kelemahan dalam pengujian kami.
- "git show 'HEAD: Foo [BAR] Baz'" tidak menafsirkan argumen sebagai rev, yaitu objek yang dinamai oleh nama path dengan karakter wildcard pada objek pohon.
- "git rev-parse --git-common-dir" yang digunakan dalam fitur worktree yang tidak berfungsi saat dijalankan dari subdirektori.
- Subkomisi "v (iew)" perintah "git am -i" interaktif dipecah dalam kerangka waktu 2.6.0 saat perintah ditulis ulang di C
- "git merge-tree" yang digunakan untuk mishandle "kedua belah pihak menambahkan" konflik dengan sendirinya "membuat file leluhur palsu yang memiliki bagian umum dari apa yang kedua belah pihak telah menambahkan dan melakukan penggabungan 3 arah" logika; ini telah diperbarui untuk menggunakan "penggabungan 3-arah biasa dengan gumpalan kosong sebagai contoh leluhur palsu" yang digunakan di sistem lainnya.
- Aturan kepemilikan memori fill_textconv () API, yang agak rumit, telah didokumentasikan sedikit lebih baik.
- Dokumentasi tidak secara jelas menyatakan bahwa mode 'sederhana' sekarang menjadi default untuk "git push" saat konfigurasi push.default tidak diset.
- Versi terbaru GNU grep lebih memilih bila input mereka mengandung data biner yang tidak semestinya, yang beberapa tes kami gunakan. Tulis ulang tes untuk menghindari masalah.
- Fungsi pembantu "git submodule" digunakan sejak v2.7.0 untuk mencantumkan modul yang sesuai dengan argumen pathspec yang diberikan ke subkomandsnya (misalnya "submodule add") telah diperbaiki.
- "git config section.var value" untuk menetapkan nilai pada file konfigurasi per-repositori yang gagal saat dijalankan di luar repositori manapun, namun tidak mengatakan alasannya dengan benar.
- Kode untuk membaca data pak menggunakan offset yang tersimpan dalam file idx paket telah dilakukan dengan lebih hati-hati memeriksa validitas data di idx.
Apa yang baru di versi 2.7.2:
- Mesin penggilingan tingkat rendah telah diajarkan untuk menggunakan penghentian jalur CRLF saat memasukkan tanda konflik ke konten gabungan yang dihentikan oleh CRLF sendiri.
- "git worktree" memiliki kode rusak yang mencoba memperbaiki kemungkinan ketidakkonsistenan yang diakibatkan oleh pengguna akhir yang memindahkan worktree ke tempat yang berbeda tanpa memberi tahu Git (repositori aslinya perlu menjaga backpointer ke worktrees-nya, tapi "mv" dijalankan oleh pengguna akhir yang tidak terbiasa dengan fakta itu tentu tidak akan menyesuaikannya), yang sebenarnya memperburuk keadaan saat dipicu.
- "git push --force-with-lease" telah diajarkan untuk melaporkan apakah dorongan tersebut dibutuhkan untuk memaksa (atau diteruskan dengan cepat).
- Perintah "ya" yang ditiru yang digunakan dalam skrip pengujian kami telah di-tweak agar tidak menghabiskan banyak waktu untuk menghasilkan keluaran yang tidak perlu yang tidak digunakan, untuk membantu mereka yang melakukan tes pada Windows yang tidak akan berhenti sampai mengisi penyangga pipa kurangnya SIGPIPE.
- Vimdiff backend untuk "git mergetool" telah di-tweak untuk mengatur dan memberi nomor buffer sesuai keinginan sebagian besar orang yang membaca dari kiri ke kanan, lalu turun ke atas dan menetapkan buffer 1 2 3 4 "secara mental" ke jendela penggabungan basis basis lokal berdasarkan pesanan itu.
- Dokumentasi untuk "git clean" telah diperbaiki; itu disebutkan bahwa .git / modules / * dihapus dengan memberi dua "-f", yang tidak pernah terjadi.
- Jalur yang telah diberi tahu bahwa indeks dengan "add -N" belum cukup dalam indeks, namun beberapa perintah berperilaku seolah-olah mereka sudah berada dalam jalur yang berbahaya.
- Juga sertakan dokumentasi kecil dan update tes.
Apa yang baru di versi 2.6.4:
- Script "configure" tidak diuji -lpthread dengan benar, yang membuat beberapa linker marah.
- Tambahkan dukungan untuk membicarakan http / https di atas kaus kaki proxy.
- Perbaikan portabilitas untuk Windows, yang dapat menulis ulang variabel $ SHELL menggunakan jalur non-POSIX.
- Kami sekarang secara konsisten mengizinkan semua kait untuk mengabaikan masukan standar mereka, daripada mengeluhkan keluhan SIGPIPE.
- Perbaiki kutipan shell di skrip kontribus.
- Uji kemampuan portabilitas untuk topik di v2.6.1.
- Izinkan perluasan tilde di beberapa variabel konfigurasi http.
- Berikan kasus khusus yang berguna "diff / show --word-diff-regex =." sebagai contoh dalam dokumentasi.
- Perbaiki untuk kasus sudut di cabang filter.
- Buat git-p4 bekerja pada kepala yang terpisah.
- Dokumentasi klarifikasi untuk "cek-abaikan" tanpa "--verbose".
- Sama seperti pohon kerja dibersihkan saat pengguna membatalkan pengiriman di P4Submit.applyCommit (), bersihkan kekacauannya jika "p4 submit" failed.
- Memiliki sisa berkas .idx tanpa file .pack yang sesuai di gudang merusak kinerja; "git gc" belajar memangkasnya.
- Kode untuk menyiapkan sisi pohon kerja dari direktori sementara untuk fitur "dir-diff" lupa bahwa tautan simbolis tidak perlu disalin (atau disambungkan) ke area sementara, karena kode tersebut sudah merupakan kasus khusus dan penimpaan mereka. Selain itu, salah jika mencoba menghitung nama objek dari target tautan simbolis, yang mungkin bahkan tidak ada atau mungkin merupakan direktori.
- Tidak ada cara untuk mengalahkan variabel rebase.autostash yang dikonfigurasi dari baris perintah, karena "git rebase --no-autostash" hilang.
- Izinkan "git interpreter-trailer" untuk berjalan di luar gudang Git.
- Menghasilkan penanda "kotor" yang benar untuk permintaan shell, bahkan saat kita berada di yatim piatu atau cabang yang belum lahir.
- Beberapa kasus sudut telah diperbaiki sesuai string yang cocok dengan "status git".
- Implementasi kripto umum Apple terhadap SHA1_Update () tidak memakan waktu lebih dari 4GB sekaligus, dan sekarang kami memiliki solusi waktu kompilasi untuk itu.
Apa yang baru di versi 2.5.3:
- Fitur tembolok eksperimental yang tidak terlacak buggy saat jalur dengan beberapa tingkat subdirektori dilibatkan.
- Versi skrip "git am" versi terbaru memiliki regresi kinerja pada codepath "git am --skip", yang tidak lagi ada dalam versi built-in di front 'master'. Perbaiki regresi dalam versi scripted terakhir yang muncul di track pemeliharaan 2.5.x dan yang lebih tua.
Apa yang baru di versi 2.4.6:
- "git fetch --depth =" dan "git clone --depth =" mengeluarkan permintaan transfer dangkal bahkan ke paket unggahan yang tidak mendukung kemampuannya.
- "git fsck" digunakan untuk mengabaikan objek yang hilang atau tidak valid yang tercatat dalam reflog.
- Penyelesaian tcsh menulis sebuah skrip bash tapi itu akan gagal bagi pengguna dengan noclobber set.
- Update Mac OS X terbaru memecahkan logika untuk mendeteksi bahwa mesin berada pada daya AC dalam contoh skrip pra-auto-gc.
- "git format-patch --ignore-if-upstream A..B" tidak suka diberi tag sebagai batas yang harus dilakukan.
- Juga berisi tipofix, update dokumentasi dan kode sepele
- pembersihan.
Apa yang baru di versi 2.4.2:
- "git rev-list --objects $ old --not - all" untuk melihat apakah semua hal yang dapat dicapai dari $ lama sudah terhubung ke ref yang ada sangat tidak efisien.
- "hash-object --literally" yang diperkenalkan di v2.2 tidak siap untuk mengambil nama tipe objek yang sangat panjang.
- "git rebase --quiet" tidak cukup sepi bila tidak ada yang perlu dilakukan.
- Penyelesaian untuk "log --decorate =" nilai parameter salah.
- "filter-branch" pesan galat commit rusak yang diakhiri dengan garis yang tidak lengkap pada platform dengan beberapa implementasi "sed" yang menghasilkan semacam garis. Bekerjalah dengan menghindari penggunaan "sed".
- "git daemon" gagal dibangun dari sumber di bawah konfigurasi NO_IPV6 (regresi dalam 2.4).
- "git stash pop / apply" lupa untuk memastikan bahwa bukan hanya pohon kerja yang bersih tapi juga indeksnya bersih. Yang terakhir ini penting karena aplikasi simpanan bisa saling bertentangan dan indeks akan digunakan untuk resolusi konflik.
- Kami telah menambahkan $ GIT_EXEC_PATH dan jalur "git" dipasang di (biasanya "/ usr / bin") ke $ PATH saat meminta subprogram dan kait hampir sepanjang hari, namun kasus penggunaan asli yang terakhir coba dukung adalah semi -bogus (yaitu menginstal git ke / opt / foo / git dan menjalankannya tanpa memiliki / opt / foo pada $ PATH), dan yang lebih penting, hal itu menjadi kurang dan kurang relevan karena Git menjadi lebih utama (yaitu pengguna akan _want_ memiliki itu di $ PATH mereka). Hentikan prepending jalur di mana "git" dipasang ke $ PATH pengguna, karena hal itu akan mengganggu perintah pencarian perintah yang bergantung pada orang (misalnya mereka mungkin tidak menyukai versi program yang tidak terkait dengan Git di / usr / bin dan ingin mengesampingkannya dengan memiliki yang berbeda di / usr / local / bin dan memiliki direktori terakhir di awal $ PATH mereka).
- Juga berisi tipofix, pembaruan dokumentasi dan pembersihan kode sepele.
Komentar tidak ditemukan