GitHub (GIT) Nedir?
Hepinize merhaba dostlarım :). Bu yazımda sektörde proje geliştirmede projenin yedeklenmesinde sıkça kullanılan bir yapı yani GitHub dan bahsedeceğim. Çoğunuz duymuşsunuzdur veya ilk kez duyanlar da vardır aranızda. Şimdi ise sizlere bu GitHub un ne olduğunu ve ne amaçla kullanıldığından bahsedeceğim :). O halde sözü daha fazla uzatmadan gelin bakalım :)
GitHub (GIT) Nedir ?
Dostlarım github aslında teoriik bir anlatıma değinecek olursak projemizdeki versiyon kontrol sistemi olarak geçer. Aklınıza hemen şu soru gelmiştir
Projemizin versiyonu mu olur
bu sorunun cevabı evet dostlarım :). Örnek vermek gerekirse android veya ios cihazımıza uygulama indiriyoruz. Bazı uygulamalarda v2 v3 vs bişeyler yazıyor :). Bunlar bir versiyondur. Düşünsenize sizin böyle bir uygulamanız var ve piyasada tuttu belli revize yapmak istediğinizde veya önceki versiyonu kontrol etmek istediğinizde kodları geliştirdikten sonra flash belleğe aktarıp daha sonra o kadar dosyanın arasında aramak mı daha iyi olur yoksa kodladığınız yere belli not oluşturup projede o kısma rahatça ulaşmanız ve daha çabuk analiz etmeniz mi daha iyi olur ?
Hepiniz ikinci sçeneği seçtiniz ve mantıken doğru olan da budur dostlarım :). Hiçbir programcı bu şekilde bir zahmete girmek istemez kodlarını github a yedekler ve yeri geldiğinde de bu versiyonları çok çabuk şekilde analizini yapar güncellemesi gereken versiyonu günceller yoluna devam eder :).
Şimdi gelelim dostlarım GitHub daki bazı terimlere
- Repository (Projemizin Depolandığı Yer)
- Branch (Geliştirme Yapmak İçin Alınan Kopya)
- Fork (Repository Çatallama)
- Watch (İzleme)
- Star (Favori)
Repository Nedir ?
Dostlarım eğer GIT (github) ile çalışmaya başlamışsanız bu terim sizin karşınıza oldukça fazla bir şekilde çıkacaktır. Proje geliştirirken, branch açarken, projeyi paylaşıma açarken vs vs. Asıl amacı dostlarım yukarıda maddelerde kısa tanımda da bahsettiğim gibi uygulamamızın yüklü olduğu depodur :). Aklınızda kalması için örnek vermek gerekirse
C:\ dosyasında nasıl ki windows kurulu ise bizim repository'mizde de projemiz bulunur. Bunu ileriki zamanlarda projemizdeki duruma göre ve tek çalışıyorsak kendi isteğimize göre private(gizli) veya public(erişilebilir) olarak ayarlayabiliriz :). Bu tamamen size kalmıştır dostlarım :). Ama hayallerinizi gerçekleştiriyorsanız github da da yedek almak istiyorsanız private olarak kalsın derim :). Gelelim diğer terime :)
Branch Nedir ?
Branch terimi de dostlarım mantıken şöyle açıklamam doğru olacaktır. Zafer ve Emrullah isimli iki geliştirici olsun diyelim. Projenin ana kısmını Zafer yazsın ve github a repository açsın diyelim. Daha sonra projesine ortak olarak Emrullah ı alsın ve Ona bir branch açıp orada teklif modülü geliştirmesini söylesin :).
Şimdi dostlar aklımızda soru oluştu değil mi :)
Bu işlemde Zafer isimli geliştirici neden hesabı vermedi de gidip branch açtı ?
Dostlarım asıl amaç şudur burada. Zafer repository açtığında bu repository ana kodları içeriyor (master branch) yani kodlar bozulursa bütün emekler boşa gitti :). Bu hatayı ön gördüğü için dostlarım bir branch yani bir yan dal açtı :). Emrullah isimli geliştirici de kodunu geliştirdikten sonra github a yeni bir versiyon olarak gönderdi ama projenin sahibi Zafer olduğu için hemen versiyon dahil edilmez. Çünkü Emrullah a branch verildiği ve orada çalışması istendiği için Emrullah master branch i asla bozamaz :).
Olay tamamen bundan ibaret dostlarım :). Teorik bir anlatımdan kaçınıp bu şekilde gerçek hayattan örneklerle daha çabuk kavradığınızı düşünüyorum :). Umarım sorunsuz anlatabilmişimdir
Fork (Çatallama) Nedir ?
Dostlarım bu github un bize sunduğu nimetlerden birisidir. Bunun amacı ise dostlarım Ara isimli geliştirici bir yazılım geliştiriyor diyelim ve bu yazılımda bir modüle ihtiyaç duyd. İnternette araştırdı ve github da o modül ile çalışma yapan bir geliştiricinin public olarak açtığı projeyi gördü ve Allah razı olsun bizim projesinde de yardımına koşan bir proje ve diğer projelerinde de yardımcı olacağını düşünüyor. Fork aldığında yapabileceği şeyler şunlar dostlarım
- Projenin o kopyasını kendi üzerine aldığında onun üzerinde geliştirme yapabiliyor ve projelerine dahil etme şansı olabiliyor dostlarım
- Projenin o kopyasını aldıktan sonra geliştirme yapıp projeyi yayınlayan geliştiriciye bildirim yapıp "Şurayı şu şekilde geliştirsek best practice olur dostum :)" diye haber edip projenin daha da güzelleşmesinde katkıda bulunuyor dostlarım :)
Fork işlemindeki amaç da budur dostlarım :). Her bir maddede GitHub un nimetlerini görmek ne kadar da mutlu edici değil mi :)
Watch (İzleme) Nedir ?
Dostlarım başlıktan bariz anlaşılıyor watch deyince anlamışsınızdır kodu inceleme diye :). Doğru bildiniz kodu inceleme ama öyle bakıp inceleme değil işte :)
Örneğin bir projje gördünüz ve bu da php ile üyelik sistemi olsun dostlarım. Bunu siz watch seçeneğini seçtiğiniz zaman aslında diyorsunuz ki "Ben bu projenin üzerinde ne oldu ne bitti her zaman görmek istiyorum :)". Github da hayhay deyip size bu proje üzerindeki her gelişmeyi anlık olarak aktarıyor ne oldu ne bitti kim nereyi geliştirdi falan filan her şeyden haberdar oluyorsunuz.
Bunu yapmanızı tavsiye ederim dostlarım çünkü gelecek artık yazılım üzerine inşa edilmeye başlandığı için projeleri incelemeniz ve anlamanız için büyük projelerde watch seçeneğini aktif etmenizin size çok büyük faydası olacaktır :)
Star (Favori) Nedir ?
Bu da aynı watch olayında olduğu gibi dostlarım görür görmez mantığını anlamışsınızdır. Bundaki amaç ise githubda geziyoruz karşımıza öyle bir proje çıktı ki bizi mest etti diyelim. Bundan projelerimizde faydalanacağımızı anladık ve buna star ile yıldız koyup yani basit bir tabirle favorilerimize almamız olayını gerçekleştirir :).
Bunu da kullanmanızda fayda var dostlarım :). Favorinize alıp diğer zamanlarda rahatlıkla erişebilirsiniz
Peki Neden Github Kullanmalıyız ?
Dostlarım gelelim şimdi github neden kullanmalıyız sorusuna :). Dostlarım en başta da dediğim gibi bu projeleri hdd veya usb lerde yedeklemek ve değişimleri zor zor karmaşıklıklar arasında görmek yerine github un sağladığı versiyon kontrol sistemi ile bu kodların eskidenki hali ve yeni halini görebiliriz, kimlerin proje üzerinde çalıştığını, hangi kodu kimin yazdığını vs bir sürü bilgilere ulaşabiliriiz. Peki bunun haricinde ne avantajları sağlıyor
- Uygulamamızı private yapıp gizlememize ve sadece izin verdiklerimize , public yaparak da dünyaya erişime açmamıza yarar
- Önceki versiyonları analiz etmemize yönetmemize ve değişiklik yapmamıza yarar
- Projemizde güvenlik açığı olup olmadığının uyarısını verir
- Birden fazla kişiyle bir proje üzerinde çalışmamıza büyük olanak sağlar
- Ve en önemlisi işe girişinizde projelerinizi github a yedeklemeniz sizi bir adım ileri taşıyacaktır
İşte dostlarım :). GitHub un ne olduğunu ne işe yaradığından bu yazımda elimden geldiğince bahsettim. Sizlerden tavsiyem bütün projelerinizi elinizden geldiğince github a yedekleyin ve GIT sistemleri ile çalışmayı kendinize ilke edinin dostlarım :). İleriki zamanlarda özellikle sektörde size çok büyük katkı sağlayacağını açık şekilde söyleyebilirim dostlarım.
Elimden geldiğince GIT konusunu anlatmaya çalıştım dostlarım :) Umarım faydalı olmuşumdur
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)
Yazar Hakkında
Kendi Halinde Bir Backend Developer
Arda Demirci
15.02.2021Çok güzel bir yazı olmuş ellerinize emeğinize sağlık