Yazılım Genel

Git Veriyon Kontrol Sistemi (VCS) Nedir ? Kullanmak Gerekir mi ?

Git Veriyon Kontrol Sistemi (VCS) Nedir ? Kullanmak Gerekir mi ?

 

Git Versiyon kontrol sistemini özetle anlatırsak, bir projede birden fazla kişinin aynı anda kodun bir ucundan tutup yazmasını sağlayıp, bunun karman çorman hale getirmeden, kod kayıpları yaşanmadan, yapmaya yarayan bir sistemdir diyebiliriz.

Düşünün, bir sayfada aynı anda üç kişi kod yazsa ne olur ? Tabiki çok basit, projeyi en son kim upload ederse onun kodu kalır :) Diğerleri otursun ağlasın mı ? Hayır git kullansın :) !!!

 

Git aslında hız odaklı, dağıtık çalışan bir sürüm kontrol ve kaynak kod yönetim sistemidir.

 

Evet eğer tek başınıza bir proje geliştiriyorsanız, şu aşamada çok işinize yaramıyor gibi görünebilir. Ama en çok tercih edilmesinin sebebini yazdım, yani çoklu projelerde kesin olması lazım bence. Sorunları en aza indirgemek için tam çözüm değil, biraz öğrendikce <HEAD> denilen belalar ile de karşılaşacaksınız. :) Yani kısacası tek projelerde işi biraz zorlaştırdığı doğrudur. Başka ne işe yarar, tabiki adında var olan versiyonlaması. Sizin her projeyi güncelleme yaptığınızda, reponuzda  bir versiyon numarası atar comit başına. Olduki işler sarpa sardı geri almanız lazım ama CRTL Z bile kurtarmıyor. İşte o zaman çat diye eski commit yaptığınız bir zamana geri gidip oradan devam edebilirsiniz. :)

 

Evet hala kullanmasak da olur gibi görüyor olabilir ama bir güzelliği daha var, projeniz artık bilgisayar, sunucunuz ve git reponuz da var. Olası bir hdd çökmesi, yanması, uçması, kaçması veya çalınması gibi durumlarda, en azından bi yerde daha olduğunu biliyorsunuz.

 

Bu saydıklarım için hep bir kaçış yolu var. Birinci madde için tek kişisiniz, ikinci ve üçüncü maddeler  için ek çözümler vardır. :) Yani bu biraz çalışma tarzınız ile alakalıydı. Bu tamamen farklı bir olay. Bir proje geliştirirdiniz ve ölmüşlerimin ruhuna değsin, bunu ben paylaşayım fani dünya, iki duva alırım dediniz, hatta hatalı eksik yanları varsa onlarda tamamlasın ortalık malı olsun süper olur dediniz. Bu durumda git i kesin kullanmanız lazım :) GitHub veya BitBucket gibi bir çok git sistemleri mevcuttur. Bunların bazıları bazı özelliklerini paralı yapmıştır. Genelde herkese açık projeler ücretsizdir yani yayınlamak için para istemezler. Olay nedir derseniz bir örnek verirsek, bir upload sistemi yazdınız. Eksikleri de var yada sadece Windows da çalışıyor. Açtınız bi git, oluşturdunuz bir repo, birileri geliyor, seviyor, benimsiyor projeyi ve birisi Linux tarafını yazıyor, başkası da MacOs için yazıyor. Proje güzelleşiyor büyüyor. İmzanın başında siz varsınız.

 

Kullanmak yada kullanmamak bundan ibaret. Günü geldiğinde zaten aklınızda olacaktır.

 

git love

Git için söylenecek en güzel söz Seviyorsan git commit push tur :D şaka şaka kulakları çınlasın, yazılım da hatırı sayılır abim Engin ve Kültigin kardeşimle yaptığımız kötü bir espri sadece. Aslında o zamanlar çok komikti :D

 

Git ‘in Tarihi

Git Linus Torvalds abimiz tarafından tasarlandı ve geliştirildi. İlk verisonu sadece Linux kernel ı yazılırken kullanılması için 2005 yılında geliştirilmiştir. Yani çok sayıda gönüllü Linux geliştiricisinin Linux çekirdeğini derlerken ilk başlarda BitKeeper adlı başka bir versiyon kontrol sistemini kullanmıştı. Ekipteki babalar BitKeeper'ın eksik yerlerini tamamladılar yada modifiye etiiler. BitKeeper'ın sahibi hop demiş, bu benim olduğu gibi kullanın yada Alt F4, yasal yollara da başvurmuş. Bundan sonra git in temelleri atılmış işe. Bunu yapmayacaktın BitKeeper. Her şerde bir hayır vardı diye buna denir! Git in ataları veya benzerleri de var tab iki 1972 yılında SCCS (Source Code Control System, cvs, svn, mercurial, ..




Birden çok git sitesi var neden ?

Git sistemi aslında Web Sunucu gibi bi servistir. Normal kullanımda görsele ihtiyaç duymadan kullanılabilecek durumda tasarlanmıştır. Yani kendi sunucuza git servisi kurup bir yere bağlı olmadan kendi içinizde bunu çözebilirsiniz. Bazı gitHub gibi ünlü sistemler aslında bu işi biraz ticari boyut katıp süsleyip püslenmiş ve işleri de baya kolaylaştırmıştır. Bu servisi görsel hale getirip başka boyutlar kazandırmışlardır. Temelinde hepsi sunucu arkasında çalışan Linus Torvalds abimizin yazdığı servislerdir.

 

Buraya kadar geldiyseniz ve git i sevdiyseniz o zaman diğer makalelerime de göz atın yavaştan teknik bilgiye ihtiyaç duyacaksınız.

 

Ben ne yapıyorum ?

Ben git ile GPay adlı projeyi geliştirirken tanıştım ve yukarıda yazdığım bir çok sorunla ekip olarak karşılaştırdık. O aşamada aramalara başladığımızda Git ile tanıştık, öğrendik ve çok sevdik. En güzel yönü benim için. Ekibin yazdığı tüm kodlar commitler halinde benim yada proje yöneticisinin önünden geçiyordu. Yani son kontrolleri biz yapıp onaylıyorduk burda gerçek ortamdaki bir sistemde minimum sorun yaşatıyordu. Diğer bir özelliği kodun neresini kim yazdı gibi soru işaretşeri yoktu tüm çalışanlar Brench ler ile çalıştığı için otomatikmen fişleniyordu :). Artık zaten bi kültür gibi benimsedim. Şuan tek projelerimde bile kullanıyorum halen faydasını gördüğüm anlar oluyor. En basiti ofis ev veya x ortamda farklı bilgisayarlarda en güncel versiyon hangisinde kaygım olmuyor.