4. Github ile Fork ve Pull Request
Fork özelliğini kullanmanın temelde iki sebebi olabilir.
1. Projenin bir kopyasını üzerimize alıp, o kopyadan o sürümden çalışmak.
2. Fork ile alınan projenin üzerinde değişiklik yapıp, proje sahibine geri gönderip, onun onayına sunup, projenin geliştirilmesine katkı sağlamak için. İnsanın kendisini geliştirebilmesi ve farklı tarzda projeler görmesi için ideal bir yöntem.
Başka bir hesapla (FinchHarold) repository oluşturup, kendi hesabımla (salihayesilyurt) da bu projeyi fork edeceğim. Projeyi aşağıdaki şekilde oluşturdum.
Peki bu projeyi bilgisayarıma çekmek istersem ne yapmam gerekli?
Öncelikle, github masaüstü uygulaması ile projeyi clone ediyorum.
Şimdi, projeyi fork eden olarak, projede değişiklik yapıp, push edeyim. Bakalım projenin asıl sahibi ile fork eden arasında nasıl bir farklılık oluşuyor.
Bu şekilde projeleri, kendi üzerinize fork edip, orjinal projeyi değiştirmeden, başkalarının projeleri üzerinde çalışabiliriz.
Pull Request
Fork ettiğimiz bir projenin üzerinde çalışıp, projede yaptığımız değişiklikleri, projenin sahibine pull request olarak gönderebiliriz. Pull request olarak göndermek demek; ben projede değişiklikleri yaptım, sen de bu bu değişiklikleri onayla ve projene merge et, ben de katkı sağlamış olayım demek.
Github masaüstü uygulamasında sağ üste yer alan icona tıklayıp, aşağıdaki şekilde yapabiliriz.
Aynı şekilde github.com’dan da aşağıdaki şekilde yapılabilir.
Yandaki resimde işaretlenen yere tıklayıp, açılan sayfada create a pull request diyoruz.
Peki bu yapılan pull request’in onaylanması nasıl olacak?
Repository’i oluşturan kişiye aşağıdaki gibi bir bildirim gönderilecek.
Yukarıdaki resimde mavi ile görünen linke tıklayıp, pull request’in ayrıntısına ulaşabiliriz.
Merge pull request dediğimizde bir açıklama istiyor. Onu da yazıp, onayladıktan sonra görüntü aşağıdaki şekilde oluyor.
Dosyalarımıza baktığımızda alınan değişikliklerin repository’i etkilediğini görebiliriz.
Github Gelişim Grafikleri
Proje üzerinde yaptığımız değişiklikler sonucu, graph dediğimiz projenin gidişatını gösteren network grafikleridir.
Yukarıda github.com da pull request 1 resminde yer alan Graphs sekmesine tıklayıp, açılan sayfada Network sekmesine geliyoruz. Aşağıdaki gibi bir sayfa ile karşılaşıyoruz.