Github, yazılım geliştirme dünyasında adeta devrim yarattı. 2008 yılında piyasaya sürülen bu platform, kısa sürede geliştiricilerin projelerini yönetmeleri, işbirliği yapmaları ve kodlarını paylaşmaları için vazgeçilmez bir araç haline geldi. Github hakkında sıkça sorulan soruları ve bu sorulara verilen net, uygulanabilir çözümleri ele alacağımız bu kapsamlı rehberi hazırladık. Amacımız, geliştiricilerin ihtiyaçlarına yanıt vermek ve sorunlu noktalarını ele alarak Github kullanımını daha verimli hale getirmektir.
Github Nedir ve Neden Önemlidir?
Github, Git sürüm kontrol sistemini kullanarak kodları depolamak, yönetmek ve işbirliği yapmak için kullanılan bir platformdur. Geliştiriciler için neden bu kadar önemli olduğunu anlamak için, Github’un sunduğu bazı ana özelliklere bakalım:
- Versiyon Kontrolü: Github, projelerin farklı sürümlerini yönetmek için Git kullanır. Bu, kodda yapılan değişikliklerin takip edilmesini ve gerektiğinde önceki sürümlere geri dönülmesini sağlar.
- İşbirliği: Takım çalışması gerektiren projelerde, geliştiriciler Github kullanarak aynı kod tabanı üzerinde çalışabilirler. Pull request’ler ve kod incelemeleri ile işbirliği süreçleri kolaylaştırılır.
- Kod Depolama: Projelerinizin kodlarını güvenli bir şekilde depolayabilir ve dilediğiniz zaman erişebilirsiniz.
- Topluluk ve Açık Kaynak: Github, milyonlarca açık kaynak projeye ev sahipliği yapar. Bu, geliştiricilerin birbirlerinin projelerine katkıda bulunmalarına olanak tanır ve öğrenme sürecini hızlandırır.
Bu özellikler, Github’u yazılım geliştirme sürecinde vazgeçilmez kılar. Şimdi, geliştiricilerin Github ile ilgili en çok merak ettiği konuları detaylıca inceleyelim.
Github ile Başlangıç
Git ve Github Arasındaki Fark
Birçok yeni başlayan geliştirici, Git ve Github arasındaki farkı merak eder. Basit bir ifadeyle, Git bir versiyon kontrol sistemidir, Github ise bu sistemi kullanarak kodları depolamanızı ve yönetmenizi sağlayan bir platformdur. Git, yerel bilgisayarınızda çalışır ve kod değişikliklerini takip ederken, Github bu değişiklikleri bulutta depolamanıza ve paylaşmanıza olanak tanır.
Örnek: Git kullanarak bir proje üzerinde çalışırken, kod değişikliklerinizi “commit” edersiniz. Bu commit’ler yerel bilgisayarınızda saklanır. Ancak, bu değişiklikleri Github’a “push” ettiğinizde, diğer takım üyeleri de bu değişiklikleri görebilir ve projeye katkıda bulunabilir.
Github Hesabı Nasıl Oluşturulur?
Github kullanmaya başlamak için öncelikle bir hesap oluşturmanız gerekir. İşte adım adım Github hesabı oluşturma süreci:
- Github Ana Sayfasına Gidin: Github.com adresine gidin.
- Kaydolun: Sağ üst köşede bulunan “Sign up” butonuna tıklayın.
- Bilgilerinizi Girin: Kullanıcı adı, e-posta adresi ve şifre gibi bilgilerinizi girin.
- Doğrulama: E-posta adresinizi doğrulamak için gelen kutunuza gelen e-postadaki bağlantıya tıklayın.
- Hesap Ayarları: Profil bilgilerinizi tamamlayın ve tercihleriniz doğrultusunda ayarlarınızı yapın.
Artık Github kullanmaya hazırsınız! Şimdi, projelerinizi nasıl oluşturup yöneteceğinizi öğrenelim.
Yeni Bir Depo (Repository) Oluşturma
Github’da projelerinizi depolamak için bir repository (depo) oluşturmanız gerekir. İşte yeni bir depo oluşturma adımları:
- Depo Oluşturma: Github hesabınıza giriş yaptıktan sonra, sağ üst köşede bulunan “+” simgesine tıklayın ve “New repository” seçeneğini seçin.
- Depo Bilgilerini Girin: Depo adı, açıklama gibi bilgileri girin. Depo adının benzersiz ve projenizi tanımlayıcı olmasına dikkat edin.
- Gizlilik Ayarları: Depoyu public (herkesin görebileceği) veya private (sadece sizin ve belirlediğiniz kişilerin erişebileceği) yapın.
- README Dosyası: İsteğe bağlı olarak bir README dosyası oluşturabilirsiniz. Bu dosya, projeniz hakkında genel bilgiler verir.
- .gitignore ve Lisans: Projenizde yer almamasını istediğiniz dosyaları belirtmek için bir .gitignore dosyası ekleyebilir ve uygun bir lisans seçebilirsiniz.
- Depoyu Oluşturun: “Create repository” butonuna tıklayarak depoyu oluşturun.
Yeni deponuz artık hazır! Kodlarınızı bu depoya yükleyebilir ve projelerinizi yönetmeye başlayabilirsiniz.
Github İş Akışları ve Temel Komutlar
Temel Git Komutları
Github kullanırken, Git komutlarını bilmek önemlidir. İşte en yaygın kullanılan temel Git komutları:
- git init: Yeni bir Git deposu oluşturur.
- git clone: Mevcut bir depoyu klonlayarak yerel bilgisayarınıza indirir.
- git add: Dosya veya değişiklikleri sahneye (stage) ekler.
- git commit: Sahneye eklenen değişiklikleri kaydeder.
- git push: Yerel depodaki değişiklikleri uzak (remote) depoya gönderir.
- git pull: Uzak depodaki değişiklikleri yerel depoya çeker.
- git status: Çalışma dizinindeki değişikliklerin durumunu gösterir.
- git log: Depodaki commit geçmişini gösterir.
Bu komutlar, Git ve Github kullanımında temel iş akışlarını yönetmenizi sağlar. Şimdi, bu komutların nasıl kullanılacağına dair örnekler verelim.
Github İş Akışları
Github üzerinde etkili bir iş akışı sağlamak için belirli adımlar ve stratejiler izlenmelidir. İşte yaygın kullanılan bazı Github iş akışları:
Fork ve Pull Request
Bu iş akışı, açık kaynak projelerde yaygın olarak kullanılır. Bir projeyi forkladığınızda, o projenin bir kopyasını kendi Github hesabınıza alırsınız. Değişiklikleri yaptıktan sonra, orijinal projeye geri göndermek için bir pull request oluşturursunuz.
Adımlar:
- Orijinal projeyi forklayın.
- Kendi hesabınızdaki kopyayı klonlayın.
- Değişiklikleri yapın ve commit edin.
- Değişiklikleri Github’a push edin.
- Orijinal projeye pull request gönderin.
Branch ve Merge
Branch ve merge iş akışı, takım çalışması gerektiren projelerde kullanılır. Yeni özellikler veya düzeltmeler için yeni bir branch oluşturulur ve bu branch üzerinde çalışmalar tamamlandığında ana branch ile birleştirilir (merge edilir).
Adımlar:
- Yeni bir branch oluşturun:
git checkout -b feature-branch
- Değişiklikleri yapın ve commit edin.
- Değişiklikleri branch’e push edin:
git push origin feature-branch
- Github üzerinden pull request oluşturun.
- İnceleme ve onay sürecinden sonra ana branch ile birleştirin (merge edin).
Github’da Proje Yönetimi
Issue ve Proje Panoları
Github, projelerinizi daha iyi yönetmek için issue ve proje panoları sunar. Issue, projelerde karşılaşılan sorunları ve görevleri takip etmek için kullanılır. Proje panoları ise görevleri organize etmek ve proje ilerlemesini takip etmek için kullanılır.
Issue Kullanımı:
- Yeni bir issue oluşturun: Proje sayfasında “Issues” sekmesine gidin ve “New issue” butonuna tıklayın.
- Sorunu veya görevi detaylı bir şekilde açıklayın ve etiketler ekleyin.
- İssue’ları atayarak sorumlulukları belirleyin.
Proje Panoları:
- Yeni bir proje panosu oluşturun: Proje sayfasında “Projects” sekmesine gidin ve “New project” butonuna tıklayın.
- Görevleri kartlar halinde ekleyin ve organize edin.
- Görevlerin durumunu takip ederek proje ilerlemesini yönetin.
Continuous Integration (CI) ve Continuous Deployment (CD)
Github, Continuous Integration (CI) ve Continuous Deployment (CD) süreçlerini destekleyen araçlarla entegrasyon sağlar. CI/CD, kod değişikliklerinin otomatik olarak test edilmesini ve dağıtılmasını sağlar, böylece projelerinizin daha hızlı ve güvenilir bir şekilde geliştirilmesini sağlar.
CI/CD İş Akışı:
- CI/CD araçlarını (Jenkins, Travis CI, CircleCI, vb.) projenize entegre edin.
- Test senaryolarını ve otomatik dağıtım adımlarını tanımlayın.
- Kod değişiklikleri push edildiğinde, CI/CD süreçleri otomatik olarak çalışır ve sonuçları bildirir.
Github ile İlgili İpuçları ve En İyi Uygulamalar
README Dosyası
Bir proje oluşturduğunuzda, README dosyası eklemek önemlidir. README dosyası, projenizin ne hakkında olduğunu, nasıl kurulduğunu ve nasıl kullanılacağını açıklar. İyi bir README dosyası, projeye katkıda bulunmak isteyen geliştiriciler için rehber niteliğindedir.
README Dosyasında Bulunması Gerekenler:
- Projenin tanımı ve amacı
- Kurulum adımları
- Kullanım talimatları
- Katkıda bulunma rehberi
- Lisans bilgileri
Lisans Seçimi
Projelerinizin lisanslı olması, kodunuzun nasıl kullanılabileceğini ve dağıtılabileceğini belirler. Github, yaygın olarak kullanılan lisans seçeneklerini sunar ve proje oluştururken uygun bir lisans seçmenizi sağlar.
Yaygın Lisanslar:
- MIT Lisansı: Kullanıcıların kodu özgürce kullanmasına ve değiştirmesine izin verir.
- Apache Lisansı 2.0: Geliştiricilerin kodu kullanmasına, değiştirmesine ve dağıtmasına izin verir, ancak belirli koşullara tabidir.
- GNU Genel Kamu Lisansı (GPL): Kullanıcıların kodu özgürce kullanmasına ve değiştirmesine izin verir, ancak değiştirilen kodun da aynı lisans altında dağıtılmasını gerektirir.
Github Güvenliği
Github’da projelerinizi güvende tutmak için bazı güvenlik önlemleri almanız önemlidir. İşte bazı güvenlik ipuçları:
- Güçlü Şifreler Kullanın: Hesabınız için güçlü ve benzersiz bir şifre kullanın.
- İki Faktörlü Kimlik Doğrulama (2FA): Hesabınızı daha güvenli hale getirmek için 2FA’yı etkinleştirin.
- SSH Anahtarları: Kod depolarına erişmek için SSH anahtarları kullanarak güvenliği artırın.
- Gizli Bilgileri Depolamayın: API anahtarları, parolalar veya gizli bilgileri kod deposunda saklamaktan kaçının.
Pull Request Nedir ve Nasıl Kullanılır?
Pull Request Nedir?
Pull request (çekme isteği), Github’da yapılan değişikliklerin orijinal depo sahiplerine incelenmesi ve birleştirilmesi (merge) amacıyla gönderilmesini sağlayan bir mekanizmadır. Özellikle açık kaynak projelerde ve ekip çalışmalarında yaygın olarak kullanılır. Pull request, projenize katkıda bulunmak isteyenlerin değişiklik önerilerini sunmasına olanak tanır ve bu değişikliklerin kod tabanına entegre edilmeden önce gözden geçirilmesini sağlar.
Pull Request Nasıl Oluşturulur?
- Fork ve Branch Oluşturma: İlk olarak, orijinal projeyi forklayın ve kendi hesabınıza klonlayın. Yeni bir branch oluşturun ve değişikliklerinizi bu branch üzerinde yapın.
git clone https://github.com/kullaniciadi/orijinal-proje.git
cd orijinal-proje
git checkout -b yeni-branch
- Değişiklikleri Yapma ve Commit Etme: Projenizde gerekli değişiklikleri yapın ve bu değişiklikleri commit edin.
git add .
git commit -m "Değişiklikler hakkında kısa bir açıklama"
- Branch’i Github’a Gönderme: Değişikliklerinizi kendi deponuza gönderin.
git push origin yeni-branch
- Pull Request Oluşturma: Github üzerinde, kendi hesabınızdaki projeye gidin ve “Compare & pull request” butonuna tıklayın. Açıklamalarınızı ekleyin ve “Create pull request” butonuna tıklayarak isteği gönderin.
Pull Request İnceleme Süreci
Pull request gönderildikten sonra, orijinal depo sahipleri veya proje yöneticileri tarafından incelenir. Kod gözden geçirilir, yorumlar yapılır ve gerekirse değişiklikler istenir. İnceleme tamamlandıktan sonra, pull request onaylanır ve değişiklikler ana kod tabanına entegre edilir.
SSH Anahtarları ve Github’da Kullanımı
SSH Anahtarı Nedir?
SSH (Secure Shell) anahtarları, Github’a güvenli bir şekilde bağlanmak ve kimlik doğrulaması yapmak için kullanılır. SSH anahtarı, özel ve genel anahtar çiftlerinden oluşur. Genel anahtar Github’a yüklenir ve özel anahtar yerel makinenizde saklanır.
SSH Anahtarı Nasıl Oluşturulur?
SSH anahtarı oluşturmak için ssh-keygen
komutunu kullanabilirsiniz. İşte adım adım SSH anahtarı oluşturma süreci:
- Terminal veya Komut İstemi Açın: Bilgisayarınızda terminal veya komut istemini açın.
- ssh-keygen Komutunu Çalıştırın: Aşağıdaki komutu yazarak SSH anahtarı oluşturun.
ssh-keygen -t rsa -b 4096 -C "email@orneksite.com"
Bu komut, RSA algoritmasını kullanarak 4096 bit uzunluğunda bir SSH anahtarı oluşturur.
-C
bayrağı, anahtarınıza bir açıklama ekler. - Anahtar Dosyasını Kaydetme: İstendiğinde, anahtar dosyasını kaydetmek için varsayılan yolu (genellikle
~/.ssh/id_rsa
) kullanın. Şifre isteği geldiğinde, bir şifre belirleyebilir veya boş bırakabilirsiniz. - Genel Anahtarı Github’a Yükleme: Oluşturulan genel anahtarı Github hesabınıza yükleyin. Anahtarınızı kopyalamak için aşağıdaki komutu kullanabilirsiniz:
cat ~/.ssh/id_rsa.pub
Kopyalanan anahtarı Github hesabınıza eklemek için Github’da oturum açın, “Settings” menüsüne gidin ve “SSH and GPG keys” sekmesinde “New SSH key” butonuna tıklayın. Anahtarı yapıştırın ve kaydedin.
Not: 5 Adımda Kendi VPN Sunucunuzu Kurun adlı makalemize de göz atmanızı tavsiye ederiz.
SSH ile Github’a Bağlanma
SSH anahtarınızı ayarladıktan sonra, aşağıdaki komutu kullanarak Github’a SSH üzerinden bağlanabilir ve kimlik doğrulaması yapabilirsiniz:
ssh -T git@github.com
Bu komut, Github’a bağlanarak kimliğinizi doğrular ve SSH bağlantısının başarıyla kurulduğunu teyit eder.
Github Desktop: Kolay ve Güçlü Git Yönetimi
Github Desktop Nedir?
Github Desktop, Git işlemlerini daha kolay ve görsel bir arayüz üzerinden yapmanızı sağlayan bir masaüstü uygulamasıdır. Github Desktop, özellikle Git komutlarına aşina olmayan kullanıcılar için idealdir ve sürüm kontrolü süreçlerini basitleştirir.
Github Desktop Kurulumu ve Kullanımı
- Kurulum: Github Desktop’u Github Desktop resmi web sitesinden indirip kurun.
- Hesap Girişi: Uygulamayı başlattıktan sonra, Github hesabınızla oturum açın.
- Depo Ekleme: Var olan bir Github deposunu klonlayabilir veya yeni bir depo oluşturabilirsiniz.
- Değişiklikleri Yönetme: Değişiklikleri izleyin, commit yapın, branch’ler oluşturun ve pull request’ler gönderin.
Github Desktop, sürüm kontrolü işlemlerini daha anlaşılır hale getirir ve geliştiricilere Git ile çalışma konusunda rahatlık sağlar.
Markdown: Belgelerinizi Zenginleştirin
Markdown Nedir?
Markdown, basit bir biçimlendirme dilidir ve düz metin belgelerini kolayca okunabilir ve yazılabilir HTML veya diğer biçimlendirilmiş dokümanlara dönüştürmenize olanak tanır. Github, Markdown’u destekler ve README dosyaları, issue açıklamaları, pull request’ler ve yorumlar gibi birçok yerde kullanılır.
Markdown Temel Söz Dizimi
Markdown’un temel söz dizimini öğrenmek oldukça kolaydır:
- Başlıklar:
#
,##
,###
gibi sembollerle başlıklar oluşturabilirsiniz.# Başlık 1 ## Başlık 2 ### Başlık 3
- Kalın ve İtalik Yazı:
**kalın**
veya*italik*
kullanarak metni kalın veya italik yapabilirsiniz.**Bu bir kalın metindir.** *Bu bir italik metindir.*
- Listeleme: Sırasız listeler için
-
,*
,+
sembollerini, sıralı listeler için ise rakamları kullanabilirsiniz.- Madde 1 - Madde 2
1. İlk madde 2. İkinci madde - Kod Blokları: Tek tırnak (
`
) işaretleri ile kod satırlarını veya üç tırnak işareti (`Bu bir kod satırıdır.`
Markdown, dokümantasyon ve yazılı içeriklerinizi zenginleştirir ve okunabilirliği artırır. Github projelerinde sıkça kullanılır ve projelerinizi daha profesyonel ve anlaşılır hale getirir.
Github Copilot: Kod Yazmanın Yeni Yolu
Github Copilot Nedir?
Github Copilot, OpenAI tarafından geliştirilen GPT-3 tabanlı bir yapay zeka asistanıdır. Kod yazma sürecinizi hızlandırmak ve geliştiricilere öneriler sunmak için entegre edilir. Github Copilot, kod tamamlama, fonksiyon önerileri ve hata düzeltme gibi birçok alanda yardımcı olur.
Github Copilot Nasıl Kullanılır?
Github Copilot’u kullanmak için aşağıdaki adımları izleyin:
- Kurulum: Github Copilot’u Visual Studio Code veya JetBrains gibi desteklenen bir kod editörüne eklenti olarak kurun.
- Oturum Açma: Github hesabınızla oturum açın ve Copilot’u etkinleştirin.
- Kod Yazma: Kod yazarken, Copilot size önerilerde bulunur ve otomatik tamamlama seçenekleri sunar. Önerileri kabul etmek için
Tab
tuşuna basabilirsiniz.
Github Copilot’un Faydaları
- Hızlı Kod Yazma: Copilot, kod yazma sürecinizi hızlandırır ve tekrarlanan görevleri otomatikleştirir.
- Hata Azaltma: Kod önerileri ile olası hataları azaltır ve daha temiz kod yazmanıza yardımcı olur.
- Öğrenme Aracı: Yeni başlayan geliştiriciler için harika bir öğrenme aracı olarak kullanılabilir, çünkü doğru kodlama pratikleri ve önerileri sunar.
Sonuç
Github, yazılım geliştirme sürecini kolaylaştıran ve işbirliğini teşvik eden güçlü bir platformdur. Bu rehberde, Github’un temel özelliklerini, iş akışlarını, proje yönetimi araçlarını ve güvenlik ipuçlarını ele aldık. Ayrıca, pull request’ler, SSH anahtarları, Github Desktop, Markdown ve Github Copilot gibi ileri düzey konulara da değindik. Github’u etkili bir şekilde kullanarak projelerinizi daha verimli bir şekilde yönetebilir ve geliştirebilirsiniz. Vuub.net olarak, yazılım geliştiricilerin ihtiyaçlarını karşılamak ve sorunlarına çözüm bulmak için bu tür kapsamlı rehberler sunmaya devam edeceğiz. Yazılım ve Web Tasarım ile ilgili daha fazla bilgi ve kaynak için bizi takip etmeyi unutmayın.