Kurs

GitHub logosu. Kaynak: GitHub Logos and Usage
Bir veri bilimi projesi üzerinde çalıştığınızı ve önemli ilerleme kaydettiğinizi hayal edin. Aniden bir hata ortaya çıkıyor. Keşke son çalışan sürüme dönebilseydiniz ama yaptığınız tüm değişiklikleri hatırlamıyorsunuz. Ya da belki başkalarıyla iş birliği yapıyorsunuz ve herkesin katkısını birleştirmek kabusa dönüyor. Bu senaryolar tanıdık geliyorsa yalnız değilsiniz.
Bu yaygın sorunlar, sürüm kontrolü ve iş birliği için önde gelen platform olan GitHub ile çözülebilir. Bu yazıda, GitHub'ın veri projelerinizi yönetme biçiminizi nasıl iyileştirebileceğine bakacağız. Ayrıca iş birliği tekniklerini ve verimliliği artırma stratejilerini inceleyeceğiz.
Önce sürüm kontrolünün temellerini anlayarak başlayalım.
Sürüm Kontrolü Nedir?
Sürüm kontrolü, dosyalardaki değişiklikleri zaman içinde izleyen bir sistemdir. Birçok kişinin bir projede birlikte çalışmasına olanak tanır. Ayrıca değişikliklerin geçmişini tutar. Sürüm kontrolü olmadan, özellikle farklı katkıda bulunanların aynı anda kodun farklı bölümleri üzerinde çalıştığı ekip tabanlı projelerde, kod değişikliklerini yönetmek kaotik ve hataya açık hale gelebilir.
GitHub Ne İçin Kullanılır?
Tahmin edebileceğiniz gibi, GitHub sürüm kontrolünde üstün olan çok yönlü bir platformdur. Ancak GitHub, sürüm kontrolünün ötesinde de çok sayıda uygulamaya sahiptir; bunlar arasında şunlar yer alır:
-
Proje Portföyleri Oluşturma: GitHub, veri becerilerinizi ve projelerinizi işverenlere veya meslektaşlarınıza göstermek için herkese açık bir GitHub profili oluşturmanıza olanak tanır.
-
İş Birliği: GitHub, ekip arkadaşlarınızla projeler üzerinde birlikte çalışmayı kolaylaştırır. Bu; kod parçacıklarını paylaşmayı ve birbirinizin çalışmalarını gözden geçirmeyi içerir.
-
Açık Kaynağa Katkı: GitHub ile mevcut açık kaynak veri bilimi projelerini keşfedebilir ve katkıda bulunabilirsiniz. Bu da öğrenmeyi ve inovasyonu hızlandırır.
GitHub Nasıl Çalışır?
GitHub'ın faydalarını tam olarak anlamak için, temel bileşenlerini ve bunların birlikte nasıl çalıştığını bilmek önemlidir.
- Depolar (Repository): Depolar, proje dosyalarınızı ve sürüm geçmişini saklayan klasörlerdir. Bunları veri projeleriniz için dijital dosya dolapları gibi düşünebilirsiniz. Her deponun benzersiz bir URL'si vardır ve dosyalar, dallar ve commit'ler içerir.
- Fork'lar: Fork, başka bir kullanıcının deposunun kişisel bir kopyasıdır. Bağımsız olarak değişiklik yapabilirsiniz. Daha sonra bu değişiklikleri asıl depoya önerebilirsiniz.
- Pull Request'ler: PR'lar, değişikliklerinizi inceleme ve birleştirme için orijinal proje sahibine resmi olarak önermenin bir yoludur. Kod incelemesini ve iş birliğini kolaylaştırırlar.
- Issues: Görevleri, hataları veya iyileştirmeleri izlemek için kullanılır.
- Dallar (Branch): Dal, bir deponun paralel bir sürümüdür. Belirli özellikler veya düzeltmeler üzerinde çalışmak için dallar oluşturabilirsiniz. Hazır olduğunuzda ana dala geri birleştirin. Bununla ilgili daha fazla bilgi için Git Clone Branch hakkındaki bu öğreticiyi inceleyin.
- Birleştirme (Merge): Birleştirme, değişikliklerinizin en iyi yönlerini orijinal projeyle bir araya getirir. Bu, her şeyin düzenli ve güncel kalmasını sağlar. İyi bir örnek, bir özellik dalını ana dala birleştirmektir.
Git ve GitHub
Git'in GitHub ile nasıl ilişkili olduğunu merak ediyor olabilirsiniz. Bu iki terim sık sık birbirinin yerine kullanılır, ancak aralarında önemli bir fark vardır.
Git, geliştiricilerin kodlarını yönetmesine yardımcı olan dağıtık bir sürüm kontrol sistemidir (DVCS). Değişiklikleri takip eder ve kodun farklı sürümlerinin, yani dallarının oluşturulmasına izin verir. Bu, geliştiricilerin birlikte çalışmasını kolaylaştırır. Git ayrıca, kod değişikliklerinin ayrıntılı bir kaydını sağlayan hazırlama alanları (staging) ve commit geçmişleri gibi özellikleri destekler.
Öte yandan GitHub, geliştiricilerin projelerde daha kolay iş birliği yapmasını sağlayan erişim kontrolü, hata takibi, görev yönetimi ve wiki gibi ek özellikler sunar. GitHub kullanarak kodunuzu yönetebilir, değişiklikleri izleyebilir, katkıları inceleyebilir ve sorunları tek bir yerde tartışabilirsiniz. Ayrıca çeşitli araç ve hizmetlerle entegre olur; bu da geliştirme iş akışını zenginleştirir.
|
Kategori |
Git |
GitHub |
|
Tanım |
Dağıtık sürüm kontrol sistemi |
Git üzerine kurulu web tabanlı platform |
|
Amaç |
Kodu yönetmenize, değişiklikleri takip etmenize ve dallar oluşturmanıza yardımcı olur |
Git depolarını barındırır ve ek iş birliği araçları sağlar |
|
Özellikler |
Hazırlama alanları, commit geçmişleri, dallanma ve birleştirme |
Erişim kontrolü, hata takibi, görev yönetimi, wikiler ve entegrasyonlar |
|
Fayda |
İş birliğine dayalı çalışmayı ve kod değişikliklerinin ayrıntılı takibini sağlar |
İş birliğini, proje yönetimini ve kod inceleme süreçlerini güçlendirir |
GitHub Nasıl Kullanılır
Şimdiye kadar GitHub'ın ne olduğunu ve sürüm kontrolünün ne olduğunu ele aldık. Ayrıca Git ile GitHub arasındaki karşılaştırmayı inceledik. Şimdi GitHub ile uygulamaya geçelim.
Önce bir GitHub hesabına nasıl kayıt olunacağını, deneyimimizi nasıl kişiselleştireceğimizi ve nasıl bir plan seçeceğimizi öğreneceğiz. Ardından, bir depo oluşturmayı; kurulumunu yapmayı, açıklamalar eklemeyi ve görünürlüğü yönetmeyi adım adım göreceğiz. Sonrasında, projemizin farklı sürümleri üzerinde çalışmak için dal oluşturmayı ele alacak ve dosyaları düzenleyip değişiklikleri belgelemeyi öğreneceğimiz commit atmaya geçeceğiz.
Kayıt olma
Bir GitHub hesabına kayıt olmak ve başlamanız için adımlar şunlardır:
- GitHub'ı ziyaret edin ve Sign up düğmesine tıklayın.
- Bir hesap oluşturmak için yönlendirmeleri izleyin. E-posta adresinizi vermeniz, bir kullanıcı adı oluşturmanız ve bir parola belirlemeniz gerekir.
- Size uygun bir plan seçerek deneyiminizi kişiselleştirebilirsiniz. Kurulum sırasında tercihlerinizi de özelleştirebilirsiniz. Ücretsiz plan, yeni başlayanlar ve junior veri uzmanları için yeterlidir.
GitHub'a kayıt olma. Görsel: Yazar
Depo oluşturma
Kayıt olduktan sonra bir sonraki adım depo oluşturmaktır. İlk deponuzu oluşturmak için adımlar şunlardır:
-
Sağ üst köşedeki + simgesine tıklayın ve New repository seçeneğini seçin.
-
Bir ad ve açıklama ekleyebilir, deponun herkese açık mı yoksa özel mi olacağını seçebilirsiniz. Herkese açık depolar herkes tarafından görülebilir. Özel depolara yalnızca siz ve davet ettiğiniz iş birlikçileri erişebilir.
-
İsteğe bağlı olarak bir README dosyası, bir
.gitgnoredosyası ve bir lisans ekleyebilirsiniz. Bunlar daha sonra da eklenebilir. -
Create repository öğesine tıklayın.

Depo oluşturma. Görsel: Yazar
Yukarıdaki adımları tamamladıktan sonra genellikle yeni bir depo için hızlı kurulum ekranı görürsünüz. Bu kuruluma yeni bir dosya oluşturarak başlayabilir veya mevcut bir dosyayı yeni depoya yükleyebilirsiniz.

Yeni depo kurulumu. Görsel: Yazar

Dosya yükleme. Görsel: Yazar
Dal oluşturma
Deponuz kurulduktan sonra bir sonraki adım dallar oluşturmaktır. Depo içinde dal oluşturmak için adımlar şunlardır:
-
Depo sayfanızda, sayfanın üst kısmına yakın yerde bulunan Branch:main öğesine tıklayın.
-
Ardından sağ üst köşedeki New branch düğmesine tıklayın.
-
Yeni bir dal adı girin ve Create new branch seçeneğine tıklayın.
-
Dal açılır menüsüne tıklayıp üzerinde çalışmak istediğiniz dalı seçerek dallar arasında geçiş yapabilirsiniz.

Dal oluşturma. Görsel: Yazar
Commit atma
Dallar oluşturduktan sonra bir sonraki adım commit atmaktır. Değişiklikleri commit etmek için adımlar şunlardır:
-
Depo içinde düzenlemek istediğiniz dosyaya gidin.
-
Kalem simgesine tıklayarak dosyayı düzenleyebilir ve metin düzenleyicide değişikliklerinizi yapabilirsiniz.
-
Commit Changes öğesine tıklayın. Sayfayı Commit changes bölümüne kadar kaydırmanız yeterlidir. Yaptığınız değişiklikleri açıkladığı için bir commit mesajı eklemek önemlidir.

Commit atma. Görsel: Yazar
Pull request oluşturma
Commit'leri yaptıktan sonra bir sonraki adım pull request oluşturmaktır. Pull request oluşturmak için adımlar şunlardır:
-
Depo içinde Pull requests sekmesine gidin.
-
New pull request seçeneğine tıklayın. GitHub, dallar arasındaki değişiklikleri otomatik olarak karşılaştıracaktır.
-
Dallarınız ile ana dal arasındaki değişiklikleri karşılaştırarak her şeyin doğru olduğundan emin olun.
-
Create pull request seçeneğine tıklayarak bir pull request oluşturun. Ardından pull request'iniz için bir başlık ve açıklama ekleyebilirsiniz.
-
Gerekiyorsa değerlendiriciler (reviewer) ekleyin ve gönderin. Bu isteğe bağlıdır, ancak değişikliklerinizden emin olmadığınız ve yöneticilerden geri bildirim almak istediğiniz durumlarda çok önemli olabilir.

Pull request oluşturma. Görsel: Yazar
Dalları birleştirme
Pull request'iniz incelenip onaylandıktan sonra son adım dalları birleştirmektir. Dalları birleştirmek için adımlar şunlardır:
- Pull request incelenip onaylandıktan sonra, Pull requests sekmesindeki ilgili pull request'e gidin.
- Merge pull request düğmesine tıklayın.
- Confirm merge seçeneğine tıklayarak birleştirmeyi onaylayın.
GitHub arayüzünü kullanmanın yanı sıra, çoğu görevi Git ile de yapabilirsiniz. Örneğin, yerel olarak bir Git deposu oluşturabilir ve uzak bir depodaki değişiklikleri git pull komutuyla birleştirebilirsiniz. Kariyerinizde ilerlerken bu ortama aşina olmak önemlidir; DataCamp'in Introduction to Git kursu bu yolculukta harika bir kaynaktır. Başlamak için GitHub ve Git Başlangıç Eğitimimizi de deneyebilirsiniz.
GitHub Alternatifleri
GitHub, sürüm kontrolü ve iş birliği için en popüler platformdur. Ancak benzersiz olanak ve faydalar sunan çeşitli alternatifler de vardır. Bu platformların, özel ihtiyaçlarınıza hitap edebileceğinin farkında olmak, yükselen veri uzmanları için çok önemlidir.
Bazı GitHub alternatiflerine göz atalım.
GitLab
Bu, Git depo yönetimi, issue takibi ve CI/CD hattı özellikleri sunan bir DevOps platformudur. GitLab, çok çeşitli araç ve hizmetleri entegre ederek DevOps'a hepsi bir arada yaklaşımıyla bilinir.

GitLab logosu
Öne çıkan bazı özelliklere bakalım:
- Entegre CI/CD: GitLab, sürekli entegrasyon ve dağıtım için yerleşik hatlara sahiptir. Bu hatlar, kod testini ve dağıtımı otomatikleştirir.
- Issue Takibi: GitLab'in issue takip sistemiyle görevleri, hataları ve özellik taleplerini yönetebilirsiniz. Bu sistem panolar, dönüm noktaları ve etiketler kullanır.
- Auto DevOps: Bu özellik, kurulum sırasında zaman kazandıran proje yapısına göre hatları yapılandırır.
- Container Registry: GitLab, Docker imajlarını yönetmek için yerleşik bir container kayıt defteri sağlar.
- Güvenlik Özellikleri: Entegre güvenlik test araçları sürekli izleme sağlar. Bu araçlar ayrıca kod tabanınızdaki güvenlik açıklarını tarar.
Bitbucket
Bitbucket, Git depolarını (Mercurial depoları dahil) yöneten bir Atlassian ürünüdür. Jira ve Trello gibi diğer Atlassian ürünleriyle kolayca çalışacak şekilde tasarlanmıştır.

Bitbucket Logosu
Öne çıkan bazı özellikler şunlardır:
- Dal İzinleri: Bitbucket, dallara kimin erişebileceği ve değişiklik yapabileceği üzerinde ayrıntılı kontrol sağlar. Bu da güvenliği artırır.
- CI/CD Entegrasyonu: Sürekli entegrasyon ve teslim için Bitbucket Pipelines ile entegre olur. Bu, otomatik test ve dağıtımı mümkün kılar.
- Jira Entegrasyonu: Jira ile doğrudan entegrasyon, kapsamlı proje yönetimi ve geliştirme ilerlemesinin takibini sağlar.
- Pull Request'ler: Satır içi yorumlar ve pull request incelemeleri, etkili kod inceleme süreçlerini kolaylaştırır.
- Dağıtım: Bitbucket Pipelines üzerinden dağıtımı destekler ve dağıtım süreçlerini kolaylaştırır.
SourceForge
SourceForge, açık kaynak projeleri barındırmak ve yönetmek için oluşturulan ilk platformlardan biridir. Geliştiriciler için kod depoları, hata takibi ve proje yönetimi özellikleri de dahil olmak üzere geniş bir araç yelpazesi sunar.
Öne çıkan özellikler şunlardır:
- Proje Barındırma: Açık kaynak projeler için ücretsiz barındırma sunar. Buna sınırsız bant genişliği ve depolama dahildir.
- İndirme İstatistikleri: Ayrıntılı indirme istatistikleri, projelerin popülerliğini ve ilerlemesini takip etmeye yardımcı olur.
- Tartışma Forumları: Yerleşik forumlar, topluluk etkileşimini ve desteğini kolaylaştırır.
- Dosya Yayınlama Sistemi: Gelişmiş dosya yayınlama sistemi, proje indirmelerini ve sürümlerini yönetir.
- SVN ve Git Desteği: Hem Subversion (SVN) hem de Git sürüm kontrol sistemlerini destekler.
AWS CodeCommit
AWS CodeCommit, Amazon Web Services tarafından sunulan tamamen yönetilen bir kaynak kontrol hizmetidir. Kodu bulutta güvenli bir şekilde depolayıp yönetmenize olanak tanır ve diğer AWS hizmetleriyle sorunsuz şekilde entegre olur.
Öne çıkan özellikler şunlardır:
- Ölçeklenebilirlik: AWS CodeCommit, altyapı yönetimi gerektirmeden depo ihtiyaçlarınıza göre ölçeklenir.
- Güvenlik: AWS Identity and Access Management (IAM) entegrasyonu, ayrıntılı erişim kontrolü sağlar.
- Entegrasyon: CodePipeline, CodeBuild ve CodeDeploy gibi diğer AWS hizmetleriyle iyi çalışır. Bu da eksiksiz bir CI/CD iş akışını kolaylaştırır.
- Yüksek Erişilebilirlik: AWS altyapısı üzerinde kurulu olup depolarınız için yüksek erişilebilirlik ve dayanıklılık sağlar.
- Şifreleme: Veriler aktarım sırasında ve bekleme halinde şifrelenir; bu da güvenliği artırır.
Cursor Origin
Cursor Origin, Cursor AI kod düzenleyicisinin arkasındaki ekip Anysphere tarafından geliştirilen bir Git barındırma platformudur. Yukarıdaki daha eski platformlardan farklı olarak, en baştan yapay zekâ destekli geliştirme etrafında inşa edilmiştir: Herhangi bir Git dökümhanesi gibi depolarınızı barındırır, ancak ajan tarafından oluşturulan commit ve pull request'leri birinci sınıf vatandaşlar olarak ele alır. Mevcut GitHub depolarınızı Origin'e yansıtabilir, böylece denemek mevcut iş akışınızı bırakmanız anlamına gelmez.
Öne çıkan özellikler şunlardır:
- Önce ajan tasarımı: Cursor'ın kodlama ajanları commit gönderebilir, pull request açabilir ve depolar üzerinde doğrudan işlem yapabilir; bu da ajan odaklı geliştirme için doğal bir ortam sağlar.
- GitHub yansıtma: Tümünü bir anda taşımak yerine, mevcut GitHub depolarınızı Origin'e yansıtarak kademeli olarak benimseyin.
- Cursor entegrasyonu: Cursor düzenleyicisi ve bulut ajanlarıyla sıkı entegrasyon; barındırma, düzenleme ve ajan çalıştırmalarını tek bir ekosistemde tutar.
- Standart Git iş akışları: Depolar, dallar ve pull request'ler beklendiği gibi davranır; başlangıç için CLI tabanlı bir kurulum sunar.
- Pull request inceleme: Platform içi inceleme, ana dala birleştirmeden önce yapay zekâ tarafından oluşturulan pull request'leri değerlendirmenize yardımcı olur.
Bunu CLI üzerinden kurma ve bir GitHub deposunu yansıtma konusunda uygulamalı bir anlatım için Cursor Origin eğitimimize bakın.
Sonuç
Bu yazıda, GitHub'ın temel yönlerini, önemini ve nasıl çalıştığını ayrıntılı olarak inceledik. Sürüm kontrolü kavramını ve kod ile verilerdeki değişiklikleri yönetmedeki önemini anlayarak başladık. Son olarak GitHub kullanımına yönelik pratik bir rehber sunduk. Bu; kayıt olmayı, depo oluşturmayı, commit atmayı, pull request yönetmeyi ve dalları birleştirmeyi içeriyordu.
Veri alanında başarıya açılan kapı sürekli öğrenmektir. GitHub ve veri bilimindeki uygulamalarına ufkunuzu daha da genişletmek için, GitHub COO'su Kyle Daigle'ın programlamanın değişen dinamiklerine dair içgörüler paylaştığı Programlamanın Geleceği konulu DataFramed podcast bölümümüzü dinleyebilir ve GitHub ile ilgili her şeyi kapsayan GitHub Concepts adlı kapsamlı kursumuzu keşfedebilirsiniz. Ayrıca kariyerinize nasıl katkı sağlayabileceğini öğrenmek için GitHub sertifikaları rehberimizi de okuyabilirsiniz.
Veri alan��nda deneyimli bir profesyonel ve yazar; veri dünyasında uzmanlaşmak isteyenleri güçlendirmeye tutkuyla bağlı.
Sıkça Sorulan Sorular
GitHub öğrenmesi zor mu?
Altyapı teknolojisi olan Git'in bir öğrenme eğrisi olsa da, GitHub Git işlevlerini yönetmek için kullanıcı dostu bir arayüz sunar.
Git, GitHub’dan nasıl farklıdır?
Git, dosyalardaki değişiklikleri izleyen bir sürüm kontrol sistemidir; GitHub ise Git depolarını çevrimiçi barındıran bir platformdur.
GitHub, hassas verileri saklamak için güvenli mi?
GitHub'daki herkese açık depolar herkes tarafından görülebilir. Parolalar veya API anahtarları gibi hassas verileri herkese açık depolarda saklamaktan kaçınmak en iyi uygulamadır. Bunun yerine özel depoları kullanın.
GitHub’ı kullanmak için ücret ödemem gerekir mi?
GitHub, sınırsız herkese açık depo ve özel depolar (sınırlı depolama) içeren bir ücretsiz plan sunar. Ücretli planlar, artırılmış depolama ve gelişmiş iş birliği gibi ek özellikler sağlar.
GitHub’a bazı alternatifler nelerdir?
GitLab, Bitbucket, SourceForge, AWS CodeCommit
Mülakatlarda GitHub bilgimi nasıl gösterebilirim?
GitHub uzmanlığınızı mülakatlarda etkili şekilde sergilemek için, becerilerinizi doğrulayan, özgeçmişinizi güçlendiren, güveninizi artıran ve öğrenmeye bağlılığınızı gösteren bir GitHub Sertifikası almayı düşünebilirsiniz.

