top of page

“AÇIK KAYNAK” PROJELER PLATFORMU

GITHUB’I TANIYALIM

https://github.com/

Zeynep Etka Özdemir

Marmara Üniversitesi Tarih Bölümü Öğrencisi

Marmara Üniversitesi Dijital Beşeri Bilimler Araştırma Merkezi Stajyeri

Git Nedir?

Git Nedir?

GitHub’ı ayrıntılı incelemeden önce, Git’in ne olduğuna bir bakalım.

Git, kelime anlamı olarak bir British argosudur. “Ağzı bozuk kişi” anlamına gelir. Linus Torvalds tarafından bilinçli olarak seçilmiştir. Torvalds, Git ismini seçmesini esprili bir şekilde “ben ağzı bozuk biriyim,” diyerek açıklamıştır.

Logosunda yazılım sistemindeki çalışma mottosunu ifade eden “branchler” yani temsili dallar vardır (bkz. Görsel 1).

Git hakkında bilinen en teknik açıklama bir Versiyon Kontrol Sistemi olduğudur. Daha basit şekilde ifade edecek olursak Git proje üzerinde oynamaya, değişiklikler yapmaya, yaptığımız değişiklikleri geri alabilmeye ve birden fazla kişinin ortak çalışabilmesine olanak sağlıyor. Git, open source bir kaynak olup ücretsiz olarak herkesin kullanımına açıldığı 2005 yılından bu güne alternatifleri arasında en iyi sunucu olarak hizmet veriyor. Git’i incelemek için: https://git-scm.com/.

GitHub’a yüklenen dosyalar, Git depolama alanında saklanır. GitHub üzerinde yapılan değişiklikler otomatik olarak Git üzerinden takip edilir ve işlenir. GitHub üzerinden doğrudan yapılıp Git’i dolaylı olarak etkileyen birçok eylem olanağı vardır.

Picture1.png

Görsel 1. Git logosu: Dallar

Kullanıcı bu yerel değişiklikleri ve ilgili Git verilerini, GitHub’daki merkezi depoya sürekli olarak senkronize edebilir.

Git yerel cihaz üzerinde çalışırken, GitHub web üzerinden ulaşıma imkan sunar. Projeniz üzerinden sosyalleşebilir ve çalışmanızı başkalarının yardımıyla daha iyi hale getirebilirsiniz.

Git’i Kullananların Bilmesi Gereken Terimler


Repository: Revizyon kontrolü altındaki bir dizine denir. Genelde repo olarak kısaltılır. Görsel 2 ve 3’te görüldüğü üzere oluşturulur.

Görsel 2. GitHub’a kaydolduktan sonra Repository kısmına nasıl geçilir?

Görsel 3. Yeni bir Repository oluşturmak için görselde duran ekranı doldurmanız gerekir.

Branch: Proje dallarından her birini ifade eder. Burada Git hakkındaki kilit noktalardan birinin yattığını söyleyebiliriz. Çalıştığımız projenin ana bir dalı vardır. Birçok kişi bu ana dal üzerine farklı şekillerde oynayabilir ve değişiklikler yapabilir. Bu işlemler projede kalıcı değişiklikler yapmaz, herhangi bir işin bozulmasına neden olmaz. Farklı kullanıcılar farklı dallar üzerinde gidebilme imkanı bulur (Bkz. Görsel 4).

Görsel 4. Farklı dallar üzerinde gidilen ve ana bir kola sahip olan proje şeması

GitHub Nasıl Başladı?

Proje üzerinde farklı bir çalışma yapan kullanıcı, projenin sahibine yaptığı yenilik ve değişimleri gönderebilir ve proje sahibi tarafından kabul edildiği takdirde projeye katılımcı olabilir.

Master: Repository’nin ana branchidir. Yukarıda ifade ettiğimiz ana dal için kullanılırCommit: Proje üzerinde yapılan değişikliği Git deposunun geçmişine kalıcı olarak kaydeder.

Fork: Repository’in bir kopyasının alınmasıdır. Aynı depodan iki yada daha fazla sahip olmak, diğerleri üzerinde esnek çalışma imkanı sağlar.

Pull Request (PR): Fork edilen proje üzerinde değişiklikler yaptıktan sonra gerçek Repository’e gönderilerek o projenin sahibi olan geliştiricinin değerlendirmesine sunmaktır.

Bir projeyi ele alacak olursak profesyonel bir iş üzerinde değişiklik yapmak istendiği vakit onu folk eder, yapılacak işlemlerden sonra projenin asıl sahibine PR gönderir ve kabul ederse projeye katılımcı dahi olunabilir.

Mutlaka bilmeniz gereken Git komutları

Git config: Kullanıcı adı ve mail bilgilerinizi girmenizi sağlayan komuttur. Her proje için ayrı ayrı girilmez, bir kere sisteme işlemek yeterlidir.

Git init: Bulunduğunuz dizinde “.git” uzantılı bir dizin yeni Repo oluşturur. Projeyi Git’e bağlayabilmek için ilk etapta yapılır.

 

Git add: Bu komut ile yapılan değişiklikler Git’e eklenir. Commit ile arasında bir basamak işlem daha bulunur.

 

Git commit: Değişikliklerin “stage” alanından çıkıp Git’e geçişi tanımlanır. Bu kayıt ile yapılan değişiklikler yerel depoya (local repository) kaydedilir.

 

Git status: Git Repository’de durumunu gösterir. Aktif olduğun branch üzerinde yapılan değişiklikleri görme olanağı sağlar.

 

Git branch: Yeni branch oluşturmaya yarar. Projeye yeni bir ‘dal’ uzatma imkanı verir.

 

Git checkout: Dilediğimiz branche gitmemizi sağlar. (Git checkout)+ (boşluk) + (gitmek istediğimiz branch adı) şeklinde yazılır.

 

Git merge: Branchleri masterla, yani çıkardığımız ek proje işlemlerini ana proje taslağıyla birleştirmemizi sağlar. İki branchi birleştirerek tek projeye çevirir.

 

Git remote: Yerel depoyu uzaktaki GitHub Repo’ya bağlamaya yarar.

 

Git clone: Uzak sunucudaki bir projeyi bilgisayara indirmeyi mümkün kılar. Web üzerinden ulaşım sağlanan proje yerel cihaza indirilebilir.

 

Git pull: Uzak sunucudaki değişiklikleri veya herhangi bir projeyi yerel cihaza çekmek için kullanılır, güncel veri alınır. Proje güncellenmiş olur. (Başka bir kullanıcının yaptığı değişikliği güncel veri olarak edinmeyi sağlar)

 

Git push: Yerel cihazda yapılan değişiklikleri uzak sunucuya yani GitHub’a gönderme işlemidir.

 

Git komutları hakkında daha çok bilgi için:

https://gist.github.com/tahaipek/84be6e736f618e6426b7e1f61ee46a6b

GitHub Nasıl Başladı?

Ocak 2023’te 100 milyondan fazla geliştiriciye ve 28 milyonu halka açık olmak üzere 420 milyondan fazla depoya sahip olduğunu açıklayan, Haziran 2023’ten beri ise dünyanın en büyük kaynak kodu sunucusu olan GitHub’ın temel amacı yazılım geliştirmenin sürüm kontrolünü ve sorun izleme yönlerini kullanıcı için daha kolay hale getirmektir.

GitHub’ın kurucuları Chris Wanstrath, PJ Hyett, Tom Preston-Werner ve Scott Chacon şirketi 8 Şubat 2008’de hayata geçirdiğinde, bu yolculuğa yöneticisi olmayan, ‘herkesin yönetici’ olduğu bir özyönetim anlayışı ile başladılar. Buna göre çalışanlar kendilerini ilgilendiren projelerde çalışmayı seçiyorlar ve icra başkanı tarafından maaşları belirleniyordu.

2010 yılına gelindiğinde ise GitHub 1 milyon depoya ev sahipliği yapıyordu. 2011 yılında bu sayı iki katına ulaştı. 2015 yılında ABD dışındaki ilk ofisini Japonya’da açan şirket Haziran 2018’de ise, kurulumundan on sene sonra, tüm okullara ücretsiz eğitim paketleri sunan GitHub Education’ı geliştirdi.

Finansal olarak ise GitHub tüm bu ilerlemesine paralel bir gelişme gösterdi. Başlangıçta üç kurucusu tarafından finanse edilirken kurulumundan dört yıl sonra, 2012 yılında Andreessen Horowitz tarafından 100 milyon dolar yatırım aldı. 2023’te ise GitHub’ın 1 milyar dolar gelir elde ettiği yönünde iddialar bulunmaktadır.

GitHub Nedir?

Kullanıcıya sağladığı olanaklarla güncel en popüler sosyal kodlama ağı olan GitHub; depolama alanında dosyalarını saklama, proje üzerinde iş birliği sağlama, proje üzerindeki değişiklikleri takip etme gibi kullanışlı bir içeriğe sahiptir. Geliştiricinin kodlarını oluşturmasını, yönetmesini, saklamasını ve paylaşmasını sağlar. GitHub üzerinde kayıtlanacak ve güncellenecek kullanıcı verileri sayesinde herhangi bir projenin kaybedilmesi ihtimali de ortadan kalkmış olacaktır. Bir projeye katkı sağlamanın ya da diğer kullanıcıların katkılarından yararlanmanın yanı sıra insanlarla sosyalleşebilir, neler yapıldığını takip edebilir ve program geliştiricilerle bağlantı kurabilirsiniz.

GitHub kompleks ve geniş çaplı projelerin değil, bireysel ya da grupla beraber yapılan daha mütevazi çalışmaların yüklendiği yazılımcılar için geliştirilmiş bir sosyal mecradır. Örneğin GitHub’a yüklenmiş projeler büyük çaplı kurulmuş siteler değil, bu siteyi geliştirirken kullanılan bir tuş, bir tasarım ya da sayfa geçişi gibi detaylar üzerine yazılmış ve geliştirilmiş kodlamalar olabilir. Projesini geliştirmek, diğerlerinin faydalanması için paylaşmak gibi nedenlerin yanı sıra kullanıcı GitHub’a yüklediği projeler sayesinde fark edilmeyi de umabilir.

Adım adım GitHub

Bir sosyal bilimci olarak GitHub’dan nasıl faydalanacağım, hiç yazılım bilgim yok diyorsanız bu adımları takip edin.

  1. GitHub’a kaydolun. Kendinize ait bir hesap oluşturarak giriş yapın.

  2. İlgi alanınıza uygun bir proje seçin. Bunu bulabilmek için arama çubuğuna anahtar kelimeler yazabilirsiniz. Arama sonuçlarında karşınıza çıkacak projeleri inceleyin. Proje hakkındaki tüm bilgileri içeren README dosyasını dikkatlice okuyun.

  3. Projenin işinize yarayacağını düşünüyor ve kullanmak istiyorsanız projeyi indirin. Proje ekranında sağ üst köşede yeşil bir buton olarak karşımıza çıkan “Code” tuşuna basın ve “Download ZIP” seçeneğine tıklayarak projeyi bilgisayarınıza indirin. Dosyayı bilgisayarınızda açtığınızda projeyi kullanabilirsiniz.

  4. Proje içerisindeki veri ve kaynaklardan, belgeler, araştırma raporları, veri setleri gibi içeriklerden faydalanabilirsiniz.

  5. İlginizi çeken projeleri “Star” tuşuna basarak beğenebilir ve “Watch” butonuna basarak takibe alabilirsiniz.

  6. Son olarak “Issues” sekmesinden proje sayfasında sorular sorabilir ve geri bildirimde bulunabilirsiniz. Bu projeyi kullanırken en verimli yolu izlemenizi sağlar.

 

GitHub’la çalışmanın birçok yolu vardır. Kullanıcı bunların arasından kendisine en uygun metodu seçer. Tecrübe düzeyi, kişisel tercihleri, beraber çalıştığı yazılımcılar gibi etkenleri göz önünde bulundurduğunda kullanıcı web üzerinden mi çalışmak istediğine yahut masaüstünde mi çalışacağına karar verebilir.

Eğer belirli bir proje üzerinde ekip olarak çalışıyorsanız, ekip arkadaşlarınızla en iyi şekilde iletişim kurmanızı ve yaptığınız işlemlerden haberdar olmanızı sağlar. Yazılımcıların yanı sıra projeye katkı yapmak için talepte bulunan herhangi bir kullanıcı da proje için kendi işlemlerini yapabilir ve yaptığı değişimlerle projeyi geliştirebilir. Aynı imkanı başka kullanıcıların projeleri için sizler de yapabilirsiniz.

Github’tan Bir Örnek: Roma İmparatorluğu Haritası

Bahsettiğimiz özelliklerini tanıyabilmek adına GitHub üzerinden paylaşılmış Roman Empire map (100-300 AD) (Erişim linki: https://github.com/von Orso/Roman_Empire_map) projesini ele alalım. İlgi alanınıza hitap eden yahut işinize yarayacağını düşündüğünüz bir proje bulduğunuzda GitHub karşınıza değişmez ana bir ekran çıkaracaktır. Bu ekranda proje hakkında bilgi, veri dosyası, kod gibi detaylı içerikleri bulabilirsiniz. (bkz. Görsel 5)

GitHub Nedir?
Adım Adım GitHub
Github’tan Bir Örnek: Roma İmparatorluğu Haritası

Görsel 5. Proje ana ekranı

Ana ekranda karşımıza çıkacak dosya sayısı projeye göre artacak veya azalacaktır. Bu kısımda karşınıza yeterince veri çıkarmayan, içerik hakkında bilgi edinemediğiniz projelerle karşılaşabilirsiniz; bu yazılımcının gösterdiği özenle alakalı olacaktır. Ele aldığımız projede ve diğer tüm projelerde karşımıza çıkacak olan dosya README kısmıdır. Proje sahibinin kendi projesini anlattığı ve içerik hakkında verdiği bilgiler bu dosyada görünecek, projenizin anlatısı olacaktır. Katkı sağlayanlar, kodun nasıl kullanabileceği gibi yönergeler dahil kullanıcıya en geniş bilgiyi verir. Buna göre ele aldığımız projenin Plotly ve Mapbox kullanılarak oluşturulmuş bir Roma şehir haritalandırması olduğunu söyleyebiliriz. Yazılımcı burada kullandığı veri setini nereden aldığına da işaret etmiş, proje neticesinde oluşturduğu görselleri paylaşmıştır.

Yüklenen dosyalar projeye göre değişecektir. Burada karşımıza dört farklı dosya çıkmaktadır (bkz. Görsel 6). Bunlardan ilki, haritalandırma sürecinde kullanılan verilerin bağlı olduğu Excel dosyasıdır. İkinci işaret edilen dosya kodlama üzerine bilgi vermekte, diğer iki dosya ise ortaya çıkarılan görselleri paylaşmaktadır (bkz. Görsel 7). Yazılımcı bu verileri istediği şekilde dosyalayabilir ve istediği şekilde sunabilir. Bu sebeple kullanıcı kimi zaman çok daha karmaşık dosyalarla karşı karşıya kalabilmektedir.

Dosyalar içerisinde sık karşılaşılan bazı klasörler şöyledir:

Licence, telif hakkı ve kopyalama iznini belgeler.

 

Src, projenin kaynak kodlarını içerir. Source kelimesinin kısaltmasıdır. Src klasörü projenin kodlandığı dile göre çeşitli dosyalar barındırabilir. Örneğin Python projeleri ‘.py’ uzantılı dosyalar, Java projeleri ‘.java’ uzantılı dosyalar olarak karşımıza çıkar.

 

Assest, projede kullanılan ve kaynak dosyalar olarak saklanan medya türlerini ifade eder. Görseller, fontlar, videolar, ses dosyaları, ve diğer medya türleri dahildir. Tüm bu dosyalar Assest klasörü içinde organize edilir.

 

Report, projeye dair raporların, belgelerin ve analizlerin bulunduğu klasör olarak karşımıza çıkar.

Görsel 6. Proje hakkındaki tüm veri ve bilgiler işaret edilen dosyalarda bulunur

Görsel 7.  Proje ürünü olarak ortaya çıkarılmış Roma şehirleri haritası

GitHub üzerinden yayınlanan bu projeler henüz bir ürün olarak sunulmamış olabilir. Bir web sitesi, uygulama, görsel olarak değil yalnızca bir kod olarak yüklenmiş olan bu projeleri nasıl kullanabileceğimiz ise yeni bir soruyu doğurmaktadır. Kullanıcı GitHub üzerinden karşılaştığı projenin kodlamasını kopyalayarak yerelinde bunu çalıştırabilir (bkz. Görsel 8), şayet gerekli olursa geliştirebilir. Örneğin bir kütüphane derlemesini kopyalayan kullanıcı, kütüphane içerisindeki veriyi genişleterek tekrar hizmete sunabilir. İlk incelediğimiz proje için ise şöyle bir örnek vermek uygun olabilir: Kullanıcı Roma şehirleri üzerine ekleyeceği yeni verileri Excel dosyasına aktarır, kod yazımını buna göre düzenleyerek aynı görseli daha kapsamlı olarak tekrar canlandırabilir.

Görsel 8. Proje üzerinde çalışmak için kodu buradan indirin

Github Hakkında Kısa Kısa

GitHub tüm özelliklerine rağmen en büyük faydayı kullanıcı için sağlar. Herhangi bir kodlamanızı paylaşmak yahut sosyalleşmek istemiyorsanız dahi, çalıştığınız alanda yapılmış ve işinize yarayacak projeleri bir araç olarak kullanmanıza imkân tanır. Bir tarihçi GitHub üzerinden Osmanlı Türkçesi transkripsiyonu üzerine kodlama bulabilirken, bir sosyolog sosyo-ekonomik ağ üzerine yapılmış bir istatistik çalışmasından faydalanabilir.

Şayet kodlama hakkında hiçbir bilginiz yoksa bir kullanıcı olarak yapay zekadan yardım almayı unutmayın! Eğer belirli düzeyde yazılım bilginiz var ise proje üzerinde çalışmak ve branch eklemek hakkında daha fazla bilgi için:

https://medium.com/nafidurmus/git-ile-dallanma-branching-ve-birle%C5%9Ftirme-merging-olaylar%C4%B1-da805501cc61

 

 

Github Hakkında Kısa Kısa

GitHub maskotu, beş kolu olan insan vücudu üzerinde bir ahtapot kafasıyla tasvir edilir. Karakteri Simon Oxley yaratmıştır. GitHub maskotunu Octocat olarak adlandırdıktan sonra, GitHub kullanıcıları Octocat’in özelleştirilmiş yüzlerce versiyonunu oluşturdular ve bunlar The Octodex’te sergilenmekte. Göz atmak için: https://octodex.github.com/

Görsel 9. GitHub maskotu

GitHub kullanım açısından kolay bir arayüze sahip olması ile de kullanıcıya kendini sevdiriyor. 2008’den beri GitHub yaygın olarak kullanılmasına ve bu alanı domine etmesine rağmen GitLab, Launchpad ve Bitbucket gibi alternatiflerin de sık olarak tercih edildiğini söylemek mümkün.

GitHub sağladığı hizmetlerin yanı sıra öğrenciler için GitHub Öğrenci Geliştirici Paketi adı altında yeni bir program sundu. Program dahilinde Bitnami, Crowdflower, DigitalOcean, DNSimple, HachHands, Namecheap, Orchestra, Screenhero, SendGrid, Stripe, Travis Cl ve Unreal Engine ile ortaklık kuruldu. Paketi incelemek için: https://education.github.com/pack.

GitHub’ın olanak tanıdığı Education.github.com (Erişim linki: GitHub Education · GitHub) üzerinden çalıştıkları ortak firmalarla ilgili indirimler ve eğitimleri takip edebilirsiniz. Bunun için öğrenci olduğunuzu ispatlamanız yeterli.

Verdiğimiz bilgilere ek olarak şunu da söylemek gerekir ki, okuyacağınız ya da izleyeceğiniz hiçbir kaynak GitHub’ı denemek kadar fayda sağlamayacaktır. Doğru yönlendiricilerle beraber bu işe hızlıca başlamak ve yanılarak öğrenmek ilerlemenin en iyi yolu olacaktır.

GitHub’ı keşfetmeye çalışırken şu videolardan faydalanabilirsiniz:

 

GitHub’ı sosyal medya hesapları üzerinden takip etmek isterseniz, bu da mümkün!

Twitter: GitHub (@github) / X

Facebook: GitHub | San Francisco CA | Facebook

Linkedin: GitHub | LinkedIn

Youtube: GitHub - YouTube

Twitch: GitHub - Twitch

Tiktok: GitHub (@github) Resmi | TikTok

bottom of page