Git

Git Bilgi
tarafından geliştirildi Yazılım Özgürlüğünü Koruma ( in )
İlk versiyon 7 Nisan 2005
Son sürüm 2.32.0 (6 Haziran 2021)
Depozito git.kernel.org/pub/scm/git/git.git
Kalite güvencesi Sürekli entegrasyon ve sürekli entegrasyon
Yazılmış C , Shell Unix , Perl , Tcl , Python ve C++
İşletim sistemi Çoklu platform
Formatları oku Git packfile ( d ) , git packfile index, sürüm 1 ( d ) ve git packfile index, sürüm 2 ( d )
Yazılı biçimler Git packfile ( d ) , git packfile index, sürüm 1 ( d ) ve git packfile index, sürüm 2 ( d )
Diller ingilizce
Tip Merkezi olmayan kaynak kontrolü ( in )
Lisans GNU Genel Kamu Lisansı sürüm 2
İnternet sitesi git-scm.com

Git , merkezi olmayan sürüm yönetim yazılımıdır . Bu özgür yazılım tarafından oluşturulan Linus Torvalds , yazarı Linux çekirdeği ve koşulları altında dağıtılan GNU Genel Kamu Lisansı sürüm 2 Git mevcut ana katkıyı ve 16 yılı aşkın bir süredir Junio C Hamano olduğunu. 2016 itibariyle on iki milyondan fazla kişi tarafından kullanılan en popüler sürüm kontrol yazılımıdır .

Teknik özellikler

BitKeeper'a benzer şekilde Git, merkezi bir sunucuya güvenmez, eşler arası bir bağlantı sistemi kullanır . Geliştirilen bilgisayar kodu, projeye katkıda bulunan her kişinin bilgisayarında saklanmakla kalmaz, aynı zamanda özel bir sunucuda da saklanabilir. Basit ve verimli olmayı hedefleyen, ana görevi bir ağaç yapısının içeriğinin evrimini yönetmek olan düşük seviyeli bir araçtır .

Git, dosyaları SHA-1 karma işleviyle hesaplanan sağlama toplamlarına göre dizine ekler . Bir dosya değiştirilmediğinde, sağlama toplamı değişmez ve dosya yalnızca bir kez saklanır. Ancak dosya değiştirilirse, her iki sürüm de diskte depolanır.

Şimdiye kadar yaygın olarak kullanılan sürüm kontrol yazılım mimarilerinin aksine Git, tamamen az sayıda temel veri yapısına dayanır. Linus Torvalds , “Git'i birçok yönden sadece bir dosya sistemi olarak düşünebilirsiniz . İçeriğe yöneliktir ve sürüm oluşturma kavramına sahiptir, ancak onu gerçekten bir dosya sistemi uzmanının bakış açısıyla tasarladım (sonuçta çekirdekler üzerinde çalışmaya alışığım) ve kesinlikle geleneksel bir sürüm kontrol sistemi oluşturmak gibi bir arzum yoktu. Git'in ilk sürümleri, ortak sürüm oluşturma işlevi yavaş yavaş eklenip rafine edilmeden önce bu dahili nesneleri işlemek için temel bir arabirim sunuyordu.

Git, veritabanı kullanmayan bazı diğer sürüm kontrol yazılımlarının ( Darcs , Arch ) kendi işlemleri için Git'in dosya depolama sistemine ilgi gösterdiği noktaya kadar iyi olarak kabul edilir . Ancak, daha gelişmiş özellikler sunmaya devam ediyorlar.

En başından beri Git, başarısının anahtarlarından biri olan merkezi olmayan bir şekilde çalışmak amacıyla tasarlandı . Git'in ademi merkeziyetçiliği, merkezi bir SVN veya CVS deposunda bir hesap talep etme ihtiyacının modası geçtiğinden , ücretsiz yazılımın geliştirilmesine de çok şey getirdi . Üzerinde çalışmaya başlamak için (projenin tüm geçmişi yerel olarak) ve ardından ana havuza (projenin ana sorumlusu) katkısını ( çekme talebi ) önermek için bir projeyi çatallamanız veya klonlamanız yeterlidir .

Git sunucuları, varsayılan olarak Git'e özgü protokol için 9418 numaralı bağlantı noktasını kullanır . HTTP , HTTPS ve SSH protokolleri (ve bunların standart portları ) da kullanılabilir.

işleyen

Git'in iki veri yapısı vardır  : bir nesne tabanı ve bir dizin önbelleği . Dört tür nesne vardır:

Nesne veritabanı, herhangi bir nesne türünü içerebilir. İndeksleri (sağlama toplamları) kullanan bir ara katman, veritabanının nesneleri ile dosyaların ağaç yapısı arasında bir bağlantı kurar.

Her nesne, içeriğinin bir SHA-1 sağlama toplamı ile tanımlanır . Git, sağlama toplamını hesaplar ve nesnenin dosya adını belirlemek için bu değeri kullanır. Nesne, adı sağlama toplamının ilk iki karakteriyle eşleşen bir dizine yerleştirilir. Sağlama toplamının geri kalanı, o nesnenin dosya adıdır.

Git, her revizyonu bir dosyaya tek bir blob olarak kaydeder . Bloblar arasındaki ilişkiler , taahhüt nesneleri incelenerek belirlenir . Tipik olarak, bloblar zlib sıkıştırması kullanılarak bütünüyle depolanır . Bu ilke, büyük miktarda disk alanını hızla tüketebilir; bu nedenle nesneler, diferansiyel sıkıştırma kullanan arşivlerde birleştirilebilir (yani, bloblar diğer bloblardan farklar olarak kaydedilir ).

Bazı siparişler

Git'te özellikle aşağıdaki komutlar bulunur:

Arayüzler

Git ile standart olarak bir web arayüzü sağlanır:

İki grafik arayüzün yanı sıra:

Üçüncü taraf masaüstü arayüzleri

Masaüstü arayüzü sunan başka uygulamalar da vardır:

Kendi kendine ev sahipliği yapan web siteleri

Diğer projeler, bazen farklı projelerin, biletlerin, wiki'nin yönetimi ile Git için web arayüzleri sağlar ...:

Barındırma siteleri

Çeşitli vardır genel barındırma siteleri (diğer adıyla forges böyle Kernel.org (bir cgit örneği olarak belirli gelişmelere adanmış) yanı sıra siteleri, kabul kullanıcı ilgili projeler, Linux çekirdeği ) ya da Gitlab örnekleri. Dan Freedesktop.org , Gnome , KDE veya hatta Blender .

Gelişim

Git, Linux çekirdeği için özel olarak geliştirilmiş ve optimize edilmiştir . Linus Torvalds , tescilli BitKeeper programının yerini alarak Nisan 2005'te yazmaya başladı . Gerçekten de, Andrew Tridgell BitKeeper tarafından kullanılan protokolleri tersine mühendislik yapmaya çalıştıktan sonra Larry McVoy yazılımını ücretsiz kullanma olasılığını iptal etti . Ancak bu iptalin nedenleri tartışmalıdır.

İlk sürüm yayınlandı 7 Nisan 2005. O zamandan beri, bu aracın gelişimi devam etti. Kendisinin grafik arayüzler, web arayüzleri veya gelişmiş komut dosyaları ile donatıldığını görerek aşamalı olarak geliştirildi.

Çekirdek Zirvesi Temmuz 2005 Linus Torvalds'ın Linux çekirdeğinin aşağıdaki sürümlerinin (2.6.12 sürümünden itibaren) Git kullanılarak geliştirileceğini duyurması için bir fırsattı.

Son Temmuz 2005Linus Torvalds, Git'in bakımını ve evrimini Junio ​​Hamano'ya emanet etmeye karar verdi ve "her zaman onu gerçekten uzun vadede sürdürmek istemediğini söyledi" dedi.

Geliştirme çok aktif. İlk kararlı sürüm (1.0) yayınlandı.21 Aralık 2005veya projenin başlangıcından bir yıldan az bir süre sonra.

Adın kökeni

Linus Torvalds, [ˈɡɪt]'yi sert bir ɡ ile telaffuz eder .

PC World dergisi bize “yazılımına neden kabaca İngiliz argosunda 'pislik' kelimesinin karşılığı olan ' git ' dediği sorulduğunda , Linus Torvalds'ın 'Ben sadece pis bir bencilim, bu yüzden tüm projelerime " Git " diye cevap verdiğini söylüyor. kendi insanım Önce Linux, sonra Git. ” ".

Notlar ve referanslar

  1. Re: Diğer bilgiler: git self-host ne zaman oldu?  » (Erişim tarihi: 5 Kasım 2019 )
  2. [DUYURU] Git v2.32.0  " ( 6 Haziran 2021'de erişildi )
  3. (in) "  Git 2.8.2 Popüler Kaynak Kod Yönetim Sistemi Üzerinden 18 Hata Düzeltmeleri ile Çıkış  " ile ilgili Softpedia ,2 Mayıs 2016( 2 Mayıs 2016'da erişildi )
  4. (içinde) Linus Torvalds, "  'Re: daha fazla git güncellemesi ..'  ' ,10 Nisan 2005(erişim 24 Nisan 2017 ) Git'i birçok yönden sadece bir dosya sistemi olarak görebilirsiniz - içeriğe yöneliktir ve sürüm oluşturma kavramına sahiptir, ancak gerçekten soruna bir dosya sistemi kişinin bakış açısıyla yaklaşarak tasarladım. (hey, çekirdekler benim yaptığım şeydir) ve aslında geleneksel bir SCM sistemi oluşturmaya kesinlikle sıfır ilgim var .  "
  5. git Arşivleri: darcs'ta git dizin önbellek kodunu kullanmak? .
  6. [Gnu-arch-users] [DUYURU] / Arch / `git'i benimser .
  7. (içinde) Jon Loeliger, Git ile Sürüm Kontrolü , O'Reilly Media , Git Temel Kavramları
  8. http://gdt.oqlf.gouv.qc.ca/ficheOqlf.aspx?Id_Fiche=8371027#eng .
  9. (içinde) "  Allura  "
  10. (tr) James Sanders, "  Microsoft alım GitHub ucubeler size, burada en iyi alternatifleri ise  " üzerine, TechRepublic ,4 Haziran 2018
  11. AWS CodeCommit
  12. “  Gitea  ” üzerine, Gitea.io (erişilen 29 Haziran 2020 ) .
  13. "  Kallithea  " , Scm.org'da ( 29 Haziran 2020'de erişildi ) .
  14. (in) "  : Teknik Konuşma Linus Torvalds git olduğu  " üzerine YouTube ,14 Mayıs 2007( 2 Aralık 2016'da erişildi )
  15. http://www.wordreference.com/enfr/git .
  16. Veya Merriam-Webster'a göre tutarsız veya değersiz kişi. John Lennon, I'm So Tired şarkısında bu kelimeyi kullanıyor .
  17. (içinde) PC World .

Ekler

İlgili Makaleler

Dış bağlantılar