İlk GitHub Projem: Yerel Klasörden GitHub’a Git ve SSH ile Nasıl Taşınır?
Modern yazılım geliştirme dünyasında, projelerinizi yönetmek, değişiklikleri takip etmek ve diğer geliştiricilerle işbirliği yapmak için güçlü araçlara ihtiyacınız vardır. İşte tam da bu noktada Git ve GitHub devreye giriyor. Bu makale, sıfırdan başlayarak yerel bir klasördeki projenizi Git versiyon kontrol sistemiyle nasıl yöneteceğinizi ve ardından GitHub’a SSH protokolü üzerinden nasıl yükleyeceğinizi adım adım açıklayacak. Eğer kod yazmaya yeni başladıysanız veya versiyon kontrol sistemlerine yabancıysanız, bu rehber sizin için mükemmel bir başlangıç noktası olacak. Peki, kendi projenizi dijital dünyaya taşımaya hazır mısınız?
Neden Git ve GitHub Kullanmalıyız? Versiyon Kontrolünün Önemi Nedir?
Bir proje üzerinde çalışırken, dosyalarınızda sürekli değişiklikler yaparsınız. Belki yeni bir özellik eklersiniz, belki mevcut bir hatayı düzeltirsiniz ya da eski bir özelliği tamamen kaldırırsınız. Bu süreçte, projenizin farklı aşamalarını takip etmek, hatalar ortaya çıktığında önceki kararlı sürümlere geri dönmek veya birden fazla kişiyle aynı anda çalışmak oldukça karmaşık bir hal alabilir. İşte bu karmaşayı ortadan kaldırmak için versiyon kontrol sistemleri (VCS) kullanılır. Git, bu sistemlerin en popüler ve en güçlülerinden biridir.
Git, dağıtık bir versiyon kontrol sistemi (Distributed Version Control System – DVCS) olarak bilinir. Bu, projenizin tüm geçmişinin her geliştiricinin yerel makinesinde tutulduğu anlamına gelir. Yani, merkezi bir sunucuya bağımlı olmadan çalışabilir, internet bağlantınız olmasa bile projenizin tüm geçmişine erişebilir ve değişikliklerinizi kaydedebilirsiniz. Git’in sunduğu en büyük avantajlardan biri, projenizin farklı sürümlerini (commit’ler) kolayca yönetebilmenizdir. Her bir commit, projenizin belirli bir andaki anlık görüntüsünü (snapshot) temsil eder. Bu sayede, herhangi bir zamanda projenizin önceki bir haline sorunsuz bir şekilde dönebilir, yaptığınız hataları kolayca geri alabilir veya farklı özellikler üzerinde paralel olarak çalışabilirsiniz.
Peki ya GitHub? GitHub, Git depolarını (repository) barındıran web tabanlı bir platformdur. Projelerinizi GitHub’a yükleyerek, dünyanın dört bir yanındaki geliştiricilerle işbirliği yapabilir, açık kaynak projelere katkıda bulunabilir veya kendi projelerinizi diğerlerinin erişimine açabilirsiniz. GitHub, sadece bir depolama alanı olmanın ötesinde, proje yönetimi, hata takibi, kod incelemesi ve sürekli entegrasyon (CI/CD) gibi birçok ek özellik sunar. Bir projenizi GitHub’a taşıdığınızda, aslında projenize bir nevi “dijital kimlik” kazandırmış olursunuz. Bu sayede, işverenler potansiyel yetenekleri keşfedebilir, diğer geliştiriciler sizinle iletişime geçebilir ve projeleriniz daha geniş kitlelere ulaşabilir. Özellikle yazılım geliştirme kariyerine yeni başlayanlar için, bir GitHub profilinin olması, portfolyo (çalışma örneği) niteliği taşır ve kendinizi sektörde göstermenin en etkili yollarından biridir. Git, yerel makinenizde versiyon kontrolünü sağlarken; GitHub, bu yerel depolarınızı internete taşıyarak küresel işbirliği ve erişilebilirlik imkanı sunar. Bu ikilinin entegrasyonu, modern yazılım geliştirmenin temel taşlarından biridir ve her geliştiricinin öğrenmesi gereken vazgeçilmez bir beceridir.
Git, GitHub ve SSH: Temel Kavramlara Hızlı Bir Bakış
Bu rehberde bolca kullanacağımız üç temel kavram var: Git, GitHub ve SSH. Bu kavramları anlamak, yerel projenizi buluta taşıma sürecini çok daha anlamlı hale getirecektir. Her birine kısaca göz atalım.
- Git: Daha önce de bahsettiğimiz gibi, Git bir versiyon kontrol sistemidir. Linus Torvalds (Linux çekirdeğinin yaratıcısı) tarafından 2005 yılında geliştirilmiştir. Git’in temel amacı, bir projenin zaman içindeki tüm değişikliklerini kaydetmek, bu değişiklikleri yönetmek ve birden fazla kişinin aynı proje üzerinde çakışma yaşamadan çalışmasını sağlamaktır. Git, komut satırı arayüzü (Command Line Interface – CLI) üzerinden veya çeşitli grafiksel kullanıcı arayüzleri (Graphical User Interface – GUI) aracılığıyla kullanılabilir. Her geliştiricinin kendi yerel makinesinde projenin tam bir kopyasını barındırması, Git’i hem hızlı hem de güvenilir kılar.
- GitHub: GitHub, Git depolarını barındırmak için tasarlanmış web tabanlı bir platformdur. Milyonlarca geliştirici ve kuruluş tarafından projelerini barındırmak, işbirliği yapmak ve açık kaynak topluluğuna katkıda bulunmak için kullanılır. GitHub, depolarınızın (repository) yanı sıra, projeler için sorun takibi (issue tracking), kod incelemesi (code review), proje yönetimi panoları ve wiki sayfaları gibi ek özellikler sunar. Projenizi GitHub’a yüklediğinizde, aslında onu internet üzerinde herkese açık (public) veya belirli kişilerle paylaşılan (private) bir depoya koymuş olursunuz. Bu, projenizin yedeklenmesini sağlar ve dünyanın her yerinden erişilebilir olmasını mümkün kılar.
- SSH (Secure Shell): SSH, ağ üzerinden güvenli bir şekilde veri alışverişi yapmak için kullanılan bir kriptografik ağ protokolüdür. GitHub ile iletişim kurarken, projenizi yerel makinenizden GitHub’a yüklemek veya GitHub’dan yerel makinenize indirmek için iki ana yöntem vardır: HTTPS ve SSH. HTTPS, kullanıcı adı ve şifre ile kimlik doğrulaması yaparken, SSH anahtar çiftleri (key pair) kullanarak daha güvenli ve pratik bir kimlik doğrulama yöntemi sunar. Bir SSH anahtar çifti, bir özel anahtar (private key) ve bir genel anahtar (public key) olmak üzere iki parçadan oluşur. Özel anahtarınız yerel makinenizde gizli tutulurken, genel anahtarınızı GitHub hesabınıza eklersiniz. GitHub, sizinle iletişim kurmak istediğinde, genel anahtarınızı kullanarak sizin özel anahtarınızla eşleşip eşleşmediğini kontrol eder. Bu eşleşme başarılı olursa, kimlik doğrulamanız gerçekleşir ve şifre girmenize gerek kalmadan güvenli bir bağlantı kurulur. Bu yöntem, özellikle sık sık Git komutları kullanan geliştiriciler için hem güvenlik hem de kullanım kolaylığı açısından tercih edilen bir yoldur.
Bu üç kavramın bir araya gelmesiyle, yerel geliştirme ortamınızdan küresel işbirliği platformlarına sorunsuz bir geçiş yapabilir, projelerinizi güvenle yönetebilir ve geliştirebilirsiniz. Şimdi, bu araçları nasıl kuracağımıza ve kullanacağımıza geçelim.
GitHub Yolculuğuna Başlarken: Ortamı Nasıl Hazırlarız?
Yerel projenizi GitHub’a taşımadan önce, bilgisayarınızda ve GitHub hesabınızda bazı ön hazırlıklar yapmanız gerekiyor. Bu adımlar, Git’i kurmayı, bir GitHub hesabı oluşturmayı ve SSH anahtarınızı yapılandırmayı içerir. Her adımı dikkatlice takip ederek sorunsuz bir başlangıç yapabilirsiniz.
Git Kurulumu ve GitHub Hesap Oluşturma Adımları Nelerdir?
İlk olarak, bilgisayarınıza Git’i kurmanız gerekiyor. Git, çoğu işletim sistemi için kolayca indirilebilir ve kurulabilir. İşletim sisteminize göre aşağıdaki adımları izleyebilirsiniz:
- Windows için: Git for Windows adresine gidin ve kurulum dosyasını indirin. Kurulum sihirbazını takip ederken varsayılan seçenekleri kabul etmeniz genellikle yeterlidir. Kurulum bittikten sonra, komut istemcisini (Command Prompt) veya PowerShell’i açıp
git --versionyazarak Git’in başarılı bir şekilde kurulup kurulmadığını kontrol edebilirsiniz. - macOS için: macOS’ta Git genellikle Xcode Komut Satırı Araçları (Xcode Command Line Tools) ile birlikte gelir. Terminal’i açıp
git --versionyazarak kontrol edin. Eğer yüklü değilse,xcode-select --installkomutunu çalıştırarak yükleyebilirsiniz. Alternatif olarak, Git for macOS adresinden indirme yapabilirsiniz. - Linux için: Çoğu Linux dağıtımında Git, paket yöneticisi aracılığıyla kolayca kurulabilir. Örneğin, Debian/Ubuntu tabanlı sistemlerde
sudo apt update && sudo apt install git, Fedora tabanlı sistemlerdesudo dnf install gitkomutunu kullanabilirsiniz. Kurulumdan sonragit --versionile kontrol etmeyi unutmayın.
Git kurulumunu tamamladıktan sonra, Git’e kim olduğunuzu tanıtmanız gerekiyor. Bu, yaptığınız her değişikliğin (commit) kimin tarafından yapıldığını kaydetmek için önemlidir. Terminal veya komut istemcisini açarak şu komutları çalıştırın:
git config --global user.name "Adınız Soyadınız"
git config --global user.email "eposta@adresiniz.com"
Kendi adınız ve e-posta adresinizle bu bilgileri güncellediğinizden emin olun. Bu bilgiler, GitHub’da yaptığınız commit’lerle ilişkilendirilecektir.
Şimdi sıra GitHub hesabınızı oluşturmaya geldi. Eğer henüz bir hesabınız yoksa, github.com/join adresine giderek ücretsiz bir hesap oluşturabilirsiniz. Kayıt işlemi oldukça basittir; bir kullanıcı adı, e-posta adresi ve şifre belirlemeniz yeterlidir. Hesabınızı oluşturduktan ve e-posta adresinizi doğruladıktan sonra, GitHub’ın ana sayfasına erişebileceksiniz. Bu hesap, projelerinizi barındıracağınız ve diğer geliştiricilerle etkileşim kuracağınız merkezi nokta olacak.
SSH Anahtarı Oluşturma ve GitHub’a Ekleme Süreci Nasıl İşler?
SSH anahtarları, GitHub ile güvenli ve şifresiz iletişim kurmanın en iyi yoludur. Her seferinde kullanıcı adı ve şifre girmek yerine, bilgisayarınız ile GitHub arasında kimlik doğrulaması yapmak için bir anahtar çifti kullanacağız. Bu işlem, bir özel anahtar (bilgisayarınızda kalacak) ve bir genel anahtar (GitHub’a yüklenecek) oluşturmayı içerir.
Terminal veya komut istemcisini açın ve aşağıdaki komutu çalıştırın:
ssh-keygen -t ed25519 -C "eposta@adresiniz.com"
eposta@adresiniz.com kısmına GitHub hesabınızla ilişkili e-posta adresinizi yazın. Bu komut, ed25519 algoritmasını kullanarak yeni bir SSH anahtar çifti oluşturacaktır. Komut sizden anahtarın kaydedileceği bir konum isteyecektir. Genellikle varsayılan konum olan /home/kullanici_adiniz/.ssh/id_ed25519 (Linux/macOS) veya C:\Users\KullaniciAdı\.ssh\id_ed25519 (Windows) konumunu kabul etmek için Enter tuşuna basabilirsiniz. Ardından, bir parola (passphrase) girmeniz istenir. Bu parola, özel anahtarınızı yetkisiz erişime karşı korur. Güçlü bir parola belirlemeniz önerilir, ancak pratiklik açısından boş bırakmayı da tercih edebilirsiniz (bu durumda her bağlantıda şifre sormaz). Parolayı iki kez girdikten sonra anahtar çiftiniz oluşturulmuş olacaktır.
Anahtar çifti oluşturulduktan sonra, genel anahtarınızı (public key) GitHub hesabınıza eklemeniz gerekir. Genel anahtarınızın adı genellikle id_ed25519.pub şeklindedir ve .ssh dizininde bulunur. Bu dosyanın içeriğini kopyalamak için aşağıdaki komutları kullanabilirsiniz:
- macOS/Linux için:
cat ~/.ssh/id_ed25519.pub - Windows için (Git Bash kullanıyorsanız):
cat ~/.ssh/id_ed25519.pub - Windows için (PowerShell kullanıyorsanız):
Get-Content "$env:USERPROFILE\.ssh\id_ed25519.pub"
Bu komut, genel anahtarınızın içeriğini terminale yazdıracaktır. Çıktının tamamını kopyalayın (genellikle ssh-ed25519 AAAA... ile başlayan ve e-posta adresinizle biten uzun bir metin dizisi).
Şimdi GitHub’a gidin: Profil fotoğrafınıza tıklayın > Settings (Ayarlar) > Sol menüden SSH and GPG keys (SSH ve GPG anahtarları) seçeneğine tıklayın > New SSH key (Yeni SSH anahtarı) düğmesine tıklayın. Açılan sayfada, “Title (Başlık)” alanına anahtarınızı tanımlayan bir isim verin (örneğin, “Ev Bilgisayarım” veya “İş Laptop’um”). “Key (Anahtar)” alanına kopyaladığınız genel anahtar metnini yapıştırın. Son olarak, Add SSH key (SSH anahtarı ekle) düğmesine tıklayın. GitHub şifrenizi girmeniz istenebilir.
SSH bağlantınızın başarılı olup olmadığını test etmek için terminalinizde şu komutu çalıştırın:
ssh -T git@github.com
Eğer her şey doğru yapıldıysa, “Hi kullanici_adiniz! You’ve successfully authenticated, but GitHub does not provide shell access.” gibi bir mesaj görmelisiniz. Bu mesaj, GitHub ile SSH üzerinden başarılı bir şekilde kimlik doğrulaması yaptığınızı gösterir. Artık yerel projenizi GitHub’a güvenli bir şekilde taşıyabilirsiniz.
Yerel Projeyi Git ile Nasıl Başlatırız ve İlk Değişiklikleri Kaydederiz?
Git ve GitHub ortamını hazırladığımıza göre, şimdi yerel makinenizde bir proje oluşturup onu Git’in kontrolü altına alma zamanı. Bu bölüm, sıfırdan bir proje klasörü oluşturmayı, Git deposunu başlatmayı ve ilk dosyalarınızı Git’e ekleyerek bir “commit” (taahhüt) oluşturmayı kapsayacak.
İlk adım, projeniz için bir klasör oluşturmaktır. Terminal veya komut istemcisini açın ve projenizi oluşturmak istediğiniz dizine gidin. Örneğin, masaüstünüzde bir proje oluşturmak isterseniz:
cd Desktop
mkdir ilk-github-projem
cd ilk-github-projem
Bu komutlar sırasıyla masaüstüne gider, ilk-github-projem adında yeni bir klasör oluşturur ve bu klasörün içine girer. Şimdi bu klasör, projenizin ana dizini olacak.
Klasörün içine girdikten sonra, bu klasörü bir Git deposu olarak başlatmanız gerekiyor. Bu, Git’in bu klasördeki değişiklikleri takip etmeye başlamasını sağlar. Aşağıdaki komutu çalıştırın:
git init
Bu komut, .git adında gizli bir alt dizin oluşturur. Bu dizin, projenizin tüm versiyon kontrol geçmişini ve Git’in çalışması için gereken diğer tüm bilgileri içerir. Bu dizini asla manuel olarak değiştirmemelisiniz. Komutun çıktısı genellikle “Initialized empty Git repository in /path/to/ilk-github-projem/.git/” şeklinde olacaktır.
Şimdi projemize birkaç dosya ekleyelim. Örneğin, basit bir HTML dosyası ve bir README dosyası oluşturabiliriz. Bir metin düzenleyici (VS Code, Sublime Text vb.) kullanarak index.html ve README.md adında iki dosya oluşturun ve ilk-github-projem klasörüne kaydedin. İçerikleri şimdilik basit olabilir:
index.html içeriği:
README.md içeriği:
# İlk GitHub Projem
Bu depo, yerel makinemden GitHub'a Git ve SSH kullanarak yüklediğim ilk projemdir.
Amacım, versiyon kontrol sistemlerini ve uzaktan depo yönetimini öğrenmektir.
Dosyaları oluşturduktan sonra, Git’e bu dosyaların takip edilmesi gerektiğini söylememiz gerekiyor. Bu işleme “staging” (sahneleme) denir. Staging alanı, bir sonraki commit’e dahil etmek istediğiniz değişiklikleri topladığınız bir alandır. Tüm dosyaları staging alanına eklemek için şu komutu kullanın:
git add .
. (nokta) işareti, mevcut dizindeki tüm değişiklikleri ve yeni dosyaları staging alanına ekle anlamına gelir. Belirli bir dosyayı eklemek isterseniz, git add index.html gibi kullanabilirsiniz. Staging alanına ekledikten sonra, git status komutu ile durumu kontrol edebilirsiniz. Bu komut, hangi dosyaların takip edildiğini, hangilerinin staging alanında olduğunu ve hangilerinin henüz eklenmediğini gösterir.
Dosyalar staging alanına eklendikten sonra, bu değişiklikleri kalıcı olarak Git geçmişine kaydetme zamanı. Bu işleme “commit” denir. Her commit, projenizin belirli bir andaki anlık görüntüsünü temsil eder ve bir mesajla birlikte gelir. Mesaj, o commit’te ne gibi değişiklikler yapıldığını açıklamalıdır. İyi bir commit mesajı, projenin geçmişini anlamayı çok daha kolaylaştırır.
git commit -m "İlk proje dosyaları: index.html ve README.md eklendi"
-m bayrağı, commit mesajını doğrudan komut satırında belirtmenizi sağlar. Bu komutu çalıştırdığınızda, Git size kaç dosyanın değiştiğini ve kaç satır eklendiğini/silindiğini gösteren bir özet sunacaktır. Tebrikler! İlk commit’inizi oluşturdunuz. Bu, projenizin yerel Git deposundaki ilk versiyonudur. Artık bu değişiklikler, Git geçmişinizin bir parçasıdır ve istediğiniz zaman bu noktaya geri dönebilirsiniz.
GitHub Deposu Oluşturma ve Yerel Projeyi Uzak Depoya Bağlama Adımları
Yerel projemizi Git ile başlattık ve ilk commit’imizi oluşturduk. Şimdi sıra bu yerel depoyu GitHub’daki bir uzak depoya (remote repository) bağlamaya geldi. Bu sayede projenizin bir kopyası GitHub’da barındırılacak, başkalarıyla paylaşılabilir hale gelecek ve güvenli bir şekilde yedeklenecektir.
İlk olarak, GitHub hesabınıza giriş yapın. Ana sayfada sağ üst köşede bulunan “+” simgesine tıklayın ve “New repository” (Yeni depo) seçeneğini seçin. Alternatif olarak, doğrudan github.com/new adresine gidebilirsiniz.
Yeni depo oluşturma sayfasında aşağıdaki bilgileri doldurmanız gerekecek:
- Repository name (Depo adı): Yerel klasör adınızla aynı olması tavsiye edilir, bu karışıklığı önler. Bizim örneğimizde
ilk-github-projemyazabilirsiniz. - Description (Açıklama – isteğe bağlı): Projenizin ne hakkında olduğunu kısa ve öz bir şekilde açıklayan bir cümle ekleyebilirsiniz.
- Public (Herkese açık) veya Private (Özel): Projenizi herkesin görmesini istiyorsanız “Public” seçeneğini işaretleyin. Eğer sadece sizin veya belirlediğiniz kişilerin erişmesini istiyorsanız “Private” seçeneğini seçin. Bu rehber için “Public” seçeneğini kullanabiliriz.
- Initialize this repository with a README (Bu depoyu bir README ile başlat): Bu seçeneği işaretlemeyin. Çünkü yerel projemizde zaten kendi
README.mddosyamızı oluşturduk. Eğer işaretlerseniz, GitHub bir README dosyası oluşturacak ve bu da yerel projenizle çakışmalara neden olabilir. - Add .gitignore (Bir .gitignore ekle) ve Choose a license (Bir lisans seç): Bu seçenekleri şimdilik boş bırakın. İleri düzey konulardır ve bu rehberin kapsamı dışındadır.
Bilgileri doldurduktan sonra “Create repository” (Depo oluştur) düğmesine tıklayın. GitHub, sizin için yeni bir boş depo oluşturacak ve size bu depoyu yerel Git deponuzla nasıl bağlayacağınıza dair talimatlar içeren bir sayfa gösterecektir.
Bu sayfada, deponuzun URL’sini bulacaksınız. SSH bağlantısı kullanacağımız için, URL’nin “SSH” sekmesi altında olduğundan emin olun. Genellikle şu formatta olacaktır: git@github.com:kullanici_adiniz/depo_adiniz.git. Bu URL’yi kopyalayın.
Şimdi yerel projemizin dizinine geri dönün (terminalde cd ilk-github-projem komutuyla). Yerel deponuzu, GitHub’daki uzak depoya bağlamanız gerekiyor. Bu işlemi git remote add komutuyla yaparız:
git remote add origin git@github.com:kullanici_adiniz/ilk-github-projem.git
Burada origin, uzak deponuza verdiğimiz varsayılan isimdir. Bu ismi değiştirebilirsiniz, ancak origin yaygın olarak kullanılan bir isimlendirmedir ve çoğu geliştirici tarafından anlaşılır. git@github.com:kullanici_adiniz/ilk-github-projem.git kısmına ise az önce GitHub’dan kopyaladığınız SSH URL’sini yapıştırın. Bu komut, yerel Git deponuza, GitHub’daki bu belirli depoyla iletişim kurması gerektiğini söyler.
Uzak deponun başarıyla eklendiğini doğrulamak için şu komutu kullanabilirsiniz:
git remote -v
Bu komut, yerel deponuzun hangi uzak depolarla bağlantılı olduğunu ve bu depoların URL’lerini (hem fetch hem de push için) gösterecektir. Çıktı, eklediğiniz origin deposunu ve SSH URL’sini içermelidir.
Yerel deponuz artık GitHub’daki boş deponuzla bağlantılı durumda. Bir sonraki adım, yerel commit’lerinizi GitHub’a “push” etmektir. Bu, yerel değişikliklerinizin uzak depoya gönderilmesi anlamına gelir ve projenizin ilk kez GitHub’da görünmesini sağlayacaktır.
Değişiklikleri Uzak Depoya Gönderme: İlk Commit ve Push Nasıl Yapılır?
Artık yerel Git deponuzu GitHub’daki uzak depoyla başarıyla bağladınız. Şimdi, yerel makinenizde yaptığınız ve kaydettiğiniz değişiklikleri (commit’leri) GitHub’a gönderme zamanı. Bu işleme “push” denir. İlk push işlemi, yerel projenizin GitHub’daki varlığını başlatacaktır.
Yerel deponuzdaki commit’leri uzak depoya göndermek için aşağıdaki komutu kullanırız:
git push -u origin main
Bu komutu detaylandıralım:
git push: Yerel deponuzdaki commit’leri uzak depoya göndermek için kullanılan temel komuttur.-uveya--set-upstream: Bu bayrak, yerelmain(veya eski adıylamaster) dalının uzakorigindeposundakimaindalını izlemesini sağlar. Bu sayede, gelecekteki push ve pull işlemleri için sadecegit pushveyagit pullyazmanız yeterli olur, çünkü Git hangi uzak depoyu ve hangi dalı kullanacağını bilecektir. Bu bayrak sadece ilk push işleminde kullanılır.origin: Bu, yerel deponuzun GitHub’daki uzak depoya verdiğiniz isimdir (git remote add origin ...komutuyla belirlemiştik).main: Bu, göndermek istediğiniz yerel dalın adıdır. Çoğu yeni Git deposu varsayılan olarakmaindalını kullanır. Bazı eski depolar veya farklı konfigürasyonlarmasterdalını kullanabilir. Kendi yerel dalınızın adınıgit branchkomutuyla kontrol edebilirsiniz.
Komutu çalıştırdığınızda, SSH anahtarınızın parolası (eğer belirlediyseniz) istenebilir. Parolanızı girdikten sonra Git, yerel commit’lerinizi GitHub’a göndermeye başlayacaktır. İşlem tamamlandığında, genellikle “Branch ‘main’ set up to track remote branch ‘main’ from ‘origin’.” gibi bir mesaj ve gönderilen nesnelerin (objects) sıkıştırılması ve yazılmasıyla ilgili bilgiler göreceksiniz.
Tebrikler! İlk projenizi başarıyla GitHub’a gönderdiniz. Şimdi GitHub hesabınıza geri dönün ve oluşturduğunuz depoyu yenileyin. Projenizin dosyaları (index.html ve README.md) ve ilk commit mesajınızla birlikte GitHub’da görünmelidir. Artık projenizin bir kopyası bulutta güvende ve herkes tarafından erişilebilir durumda (eğer public yaptıysanız).
Bu ilk push, projenizin temelini GitHub’a attı. Bundan sonra yapacağınız her değişiklik, yeni bir commit oluşturularak ve ardından git push komutuyla GitHub’a gönderilerek güncellenecektir. Bu sürekli bir geliştirme ve senkronizasyon döngüsüdür. Bu, projenizin tüm geçmişini izleyebilmenizi, farklı sürümler arasında geçiş yapabilmenizi ve gerektiğinde önceki hallerine dönebilmenizi sağlar. GitHub’ın arayüzünde commit geçmişinizi, dosya değişikliklerini ve daha fazlasını görebilirsiniz. Bu, sadece bir yedekleme değil, aynı zamanda projenizin gelişimini görselleştiren ve işbirliğini kolaylaştıran güçlü bir araçtır.
Projenizi Güncel Tutmak: Dosyaları Değiştirme ve Tekrar GitHub’a Gönderme
Bir projenin GitHub’a yüklenmesi sadece başlangıçtır. Geliştirme süreci boyunca dosyalarınızda sürekli değişiklikler yapacak, yeni özellikler ekleyecek veya hataları düzelteceksiniz. Bu değişiklikleri düzenli olarak GitHub’a göndermek, projenizin güncel kalmasını, yedeklenmesini ve işbirliği için hazır olmasını sağlar. Bu bölümde, projenizde değişiklikler yapmayı, bu değişiklikleri Git ile takip etmeyi ve tekrar GitHub’a nasıl göndereceğinizi adım adım göreceğiz.
İlk olarak, yerel projenizdeki bir dosyayı değiştirelim. Örneğin, index.html dosyamıza yeni bir paragraf ekleyelim veya mevcut bir metni güncelleyelim. Metin düzenleyicinizle index.html dosyasını açın ve aşağıdaki gibi bir değişiklik yapın:
Dosyayı kaydettikten sonra, terminalinize geri dönün ve projenizin dizininde olduğunuzdan emin olun. Git’in bu değişikliği algıladığını görmek için git status komutunu çalıştırın:
git status
Bu komutun çıktısı, index.html dosyasının “modified” (değiştirilmiş) olduğunu ve henüz staging alanına eklenmediğini gösterecektir. Git, bu değişikliği henüz bir commit olarak kaydetmediği için onu takip etmeye devam eder.
Değişikliğin tam olarak ne olduğunu görmek isterseniz, git diff komutunu kullanabilirsiniz. Bu komut, çalışma dizininizdeki (working directory) değişiklikleri son commit ile karşılaştırır:
git diff
Çıktı, eklediğiniz yeni satırı yeşil renkte ve başında “+” işaretiyle gösterecektir. Bu, hangi satırların eklendiğini, silindiğini veya değiştirildiğini görsel olarak anlamanıza yardımcı olur. Eğer sadece staging alanındaki değişiklikleri görmek isterseniz git diff --staged komutunu kullanabilirsiniz.
Şimdi, bu değişikliği bir sonraki commit’e dahil etmek için staging alanına eklememiz gerekiyor. Daha önce yaptığımız gibi, git add komutunu kullanırız:
git add index.html
Birden fazla dosya değiştirdiyseniz ve hepsini eklemek isterseniz git add . komutunu kullanabilirsiniz. Staging işleminden sonra tekrar git status komutunu çalıştırırsanız, index.html dosyasının “Changes to be committed” (Commit edilecek değişiklikler) bölümünde yeşil renkte göründüğünü fark edeceksiniz. Bu, dosyanın bir sonraki commit’e hazır olduğu anlamına gelir.
Değişiklik staging alanına eklendikten sonra, onu bir commit olarak kaydetme zamanı. Her zaman anlamlı ve açıklayıcı bir commit mesajı yazmaya özen gösterin:
git commit -m "index.html güncellendi: Yeni paragraf eklendi"
Bu commit, yerel Git deponuzdaki projenizin geçmişine yeni bir anlık görüntü ekler. Artık bu değişiklik, yerel olarak kaydedilmiştir.
Son olarak, bu yeni commit’i GitHub’daki uzak depoya göndermemiz gerekiyor. Daha önce -u bayrağını kullandığımız için, artık sadece git push yazmamız yeterli olacaktır:
git push
Git, yerel deponuzdaki yeni commit’i algılayacak ve onu uzak depoya gönderecektir. İşlem tamamlandığında, GitHub’daki deponuzu yenileyerek yaptığınız değişikliklerin ve yeni commit mesajınızın orada göründüğünü kontrol edebilirsiniz. Bu döngü, projenizin geliştirme süreci boyunca sürekli olarak tekrarlanacaktır: Değişiklik yap, git add ile staging alanına ekle, git commit ile kaydet ve git push ile GitHub’a gönder. Bu düzenli akış, projenizin versiyon kontrolünü etkin bir şekilde yönetmenizi sağlar.
GitHub Kullanımında İleri Düzey İpuçları ve En İyi Uygulamalar Nelerdir?
Yerel bir projeyi Git ve SSH kullanarak GitHub’a nasıl taşıyacağınızı öğrendiniz. Bu temel adımlar, versiyon kontrol dünyasına sağlam bir giriş yapmanızı sağlar. Ancak Git ve GitHub’ın sunduğu imkanlar bunlarla sınırlı değil. Daha verimli ve profesyonel bir geliştirme deneyimi için bazı ileri düzey ipuçları ve en iyi uygulamaları bilmek faydalıdır.
- Dallar (Branches) Kullanımı: Git’in en güçlü özelliklerinden biri dallardır. Dalları, projenizin ana akışından (genellikle
mainveyamasterdalı) ayrılan bağımsız geliştirme hatları olarak düşünebilirsiniz. Yeni bir özellik üzerinde çalışırken veya bir hata düzeltirken, ana dalı etkilemeden yeni bir dal oluşturup tüm değişikliklerinizi o dalda yapabilirsiniz. İşiniz bittiğinde, bu dalı ana dala “merge” (birleştirme) edersiniz. Bu, ana dalın her zaman kararlı kalmasını sağlar ve birden fazla kişinin aynı proje üzerinde çakışma yaşamadan çalışmasına olanak tanır. Yeni bir dal oluşturmak içingit branch yeni-ozellikve o dala geçmek içingit checkout yeni-ozellikkomutlarını kullanabilirsiniz. İki komutu birleştirengit checkout -b yeni-ozellikde mevcuttur. .gitignoreDosyası: Her projede, Git’in takip etmesini istemediğiniz dosyalar veya klasörler bulunur. Örneğin, derlenmiş dosyalar (.class,.o), bağımlılık klasörleri (node_modules), geçici dosyalar (.tmp) veya hassas bilgiler içeren yapılandırma dosyaları (API anahtarları). Bu tür dosyaları Git’in göz ardı etmesini sağlamak için projenizin kök dizinine.gitignoreadında bir dosya oluşturabilirsiniz. Bu dosyanın içine, Git’in takip etmemesi gereken dosya ve klasör desenlerini yazarsınız. Örneğin:# Log dosyaları *.log # Node.js bağımlılıkları node_modules/ # Ortam değişkenleri .env # İşletim sistemi geçici dosyaları .DS_Store Thumbs.dbBu dosya, gereksiz dosyaların deponuza eklenmesini engelleyerek hem deponuzun boyutunu küçültür hem de temiz kalmasını sağlar.
- Anlamlı Commit Mesajları: Her commit, projenizin geçmişindeki önemli bir noktayı işaret eder. Bu nedenle, commit mesajlarınızın açıklayıcı ve anlamlı olması çok önemlidir. İyi bir commit mesajı, o commit’te ne gibi değişiklikler yapıldığını ve neden yapıldığını kısaca özetlemelidir. Genellikle, mesajın ilk satırı kısa ve öz bir özet olurken, daha detaylı açıklamalar boş bir satırdan sonra eklenebilir. Örneğin:
feat: Kullanıcı giriş formu eklendiveyafix: Mobil görünümdeki kaydırma hatası düzeltildi. - Sık ve Küçük Commit’ler Yapın: Değişikliklerinizi büyük parçalar halinde biriktirmek yerine, sık sık ve küçük commit’ler yapın. Her commit, tek bir mantıksal değişikliği içermelidir. Bu, hataları bulmayı, geri almayı veya projenin belirli bir noktasına dönmeyi çok daha kolay hale getirir.
- Pull Request (Çekme İsteği) Kullanımı: GitHub üzerinde işbirliği yaparken, kendi dalınızda yaptığınız değişiklikleri ana dala birleştirmek için “Pull Request” (PR) veya “Merge Request” (MR) oluşturursunuz. PR’ler, diğer geliştiricilerin kodunuzu incelemesine, yorum yapmasına ve potansiyel sorunları tespit etmesine olanak tanır. Bu, kod kalitesini artırmak ve ekip içinde bilgi paylaşımını sağlamak için harika bir yoldur.
- GitHub Profili ve Portfolyo: GitHub profiliniz, bir geliştirici olarak dijital kartvizitinizdir. Açık kaynak projelere katkıda bulunarak, kendi projelerinizi düzenli olarak güncelleyerek ve iyi README dosyaları yazarak profilinizi zenginleştirin. Bu, potansiyel işverenler veya işbirlikçiler için yeteneklerinizi sergilemenin en iyi yollarından biridir.
Bu ipuçları, Git ve GitHub’ı sadece bir dosya depolama sistemi olmaktan çıkarıp, güçlü bir geliştirme aracı ve işbirliği platformu olarak kullanmanıza yardımcı olacaktır. Pratik yaparak ve bu araçları günlük iş akışınıza entegre ederek kısa sürede uzmanlaşabilirsiniz.
Sıkça Sorulan Sorular ve Sonuç
Bu makalede, yerel bir klasörden Git ve SSH kullanarak ilk GitHub projenizi nasıl oluşturacağınızı ve yöneteceğinizi adım adım öğrendiniz. Git’in versiyon kontrol sistemi olarak nasıl çalıştığını, GitHub’ın bir barındırma ve işbirliği platformu olarak önemini ve SSH’nin güvenli bağlantı sağlamadaki rolünü keşfettiniz. Git kurulumundan, SSH anahtarı oluşturmaya, yerel deponuzu başlatmaktan, ilk commit’i yapmaya ve değişiklikleri GitHub’a göndermeye kadar tüm süreçleri pratik örneklerle uyguladık. Ayrıca, dallanma, .gitignore kullanımı ve anlamlı commit mesajları gibi ileri düzey ipuçlarıyla Git ve GitHub’ı daha etkin kullanmanın yollarını da inceledik. Artık kendi projelerinizi güvenle GitHub’a taşıyabilir, versiyon kontrolünü yönetebilir ve açık kaynak dünyasına adım atabilirsiniz. Unutmayın, pratik yapmak ve düzenli olarak Git komutlarını kullanmak, bu araçlarda ustalaşmanın anahtarıdır. Başarılar dileriz!
Sıkça Sorulan Sorular
-
Git ile GitHub arasındaki fark nedir?
Git, yerel bilgisayarınızda çalışan bir versiyon kontrol sistemidir. Projenizin tüm değişiklik geçmişini takip etmenizi ve yönetmenizi sağlar. GitHub ise Git depolarını barındıran web tabanlı bir platformdur. Git ile yerel olarak oluşturduğunuz projelerinizi internet üzerinde saklamanıza, başkalarıyla paylaşmanıza ve işbirliği yapmanıza olanak tanır.
-
Neden HTTPS yerine SSH kullanmalıyım?
SSH, GitHub ile daha güvenli ve pratik bir bağlantı sağlar. HTTPS ile her işlemde kullanıcı adı ve şifre girmeniz gerekirken, SSH bir anahtar çifti kullanarak kimlik doğrulaması yapar. Bu, özellikle sık Git komutları kullanan geliştiriciler için zaman kazandırır ve güvenlik seviyesini artırır. Bir kez SSH anahtarınızı yapılandırdıktan sonra şifre girmenize gerek kalmaz.
-
git add .vegit commit -m "Mesaj"komutları ne işe yarar?git add .komutu, mevcut dizindeki tüm değiştirilmiş veya yeni dosyaları Git’in “staging” (sahneleme) alanına ekler. Bu, bir sonraki commit’e dahil etmek istediğiniz değişiklikleri belirtir.git commit -m "Mesaj"komutu ise staging alanındaki tüm değişiklikleri Git geçmişine kalıcı olarak kaydeder ve bu kayda “Mesaj” kısmında belirttiğiniz açıklamayı ekler. Her commit, projenizin belirli bir andaki anlık görüntüsünü temsil eder. -
Yanlış bir commit mesajı yazdım, nasıl düzeltebilirim?
Eğer son commit mesajınızı yanlış yazdıysanız ve henüz bu commit’i GitHub’a (uzak depoya) göndermediyseniz,
git commit --amend -m "Yeni doğru mesaj"komutunu kullanarak düzeltebilirsiniz. Eğer commit’i zaten GitHub’a gönderdiyseniz, geçmişi değiştirmek sorunlara yol açabilir. Bu durumda, yeni bir commit ile düzeltme yapmak veya dikkatli bir şekildegit revertkullanmak daha güvenlidir. -
Bir projeyi GitHub’dan yerel bilgisayarıma nasıl kopyalarım?
Bir projeyi GitHub’dan yerel bilgisayarınıza kopyalamak için “clone” (klonlama) işlemini kullanırsınız. GitHub deposunun sayfasında “Code” düğmesine tıklayın, SSH URL’sini kopyalayın ve terminalinizde
git clone [SSH_URL]komutunu çalıştırın. Örneğin:git clone git@github.com:kullanici_adiniz/depo_adiniz.git. Bu komut, deponun tüm geçmişiyle birlikte yerel makinenize bir kopyasını indirecektir.
#Git #GitHub #SSH #VersiyonKontrol #WebGeliştirme
