Mevcut Projenizi GitHub’a Yüklemek Neden Önemli?
Mevcut projelerinizi GitHub’a aktarmak, modern yazılım geliştirme süreçlerinde işbirliğini artırmak, kodunuzu güvenle yedeklemek ve sürüm kontrolünü sağlamak için kritik bir adımdır. Birçok geliştirici için GitHub, sadece bir kod deposu olmanın ötesinde, açık kaynak topluluğuna katkıda bulunma, portföy oluşturma ve profesyonel ağlarını genişletme aracıdır. Peki, elinizdeki bir projeyi bu güçlü platforma nasıl taşıyacaksınız? Bu kapsamlı rehber, projenizi GitHub’a sorunsuz bir şekilde nasıl yükleyeceğinizi, temel kavramlardan ileri düzey ipuçlarına kadar adım adım açıklayacaktır. İster bireysel bir geliştirici olun ister bir ekibin parçası, bu süreç projenizin geleceği için hayati önem taşımaktadır.
Bir projeyi GitHub’a yüklemek, sadece dosyalarınızı bir sunucuya kopyalamak değildir; aynı zamanda projenizin gelişimini izlemenizi, farklı versiyonlar arasında kolayca geçiş yapmanızı ve ekip üyeleriyle eşzamanlı olarak çalışmanızı sağlayan bir sürüm kontrol sistemi olan Git’in gücünden faydalanmanızı demektir. Projenizin geçmişine dair şeffaf bir kayıt tutarak, hataları tespit etmek ve geri almak çok daha kolay hale gelir. Ayrıca, projenizi GitHub’da barındırmak, potansiyel işverenlere veya işbirlikçilere çalışmalarınızı sergilemek için harika bir vitrin sunar. Kısacası, mevcut bir projeyi GitHub’a taşımak, projenizi daha organize, daha güvenli ve daha işbirlikçi bir hale getirmenin ilk ve en önemli adımıdır.
Bu rehberde, ilk olarak Git ve GitHub’ın temel prensiplerini anlayacak, ardından projenizi hazırlama aşamalarını detaylandıracak ve son olarak komut satırı aracılığıyla adım adım yükleme işlemini gerçekleştireceğiz. Ayrıca, sık karşılaşılan sorunlara çözümler sunacak ve deneyimli kullanıcılar için bazı ileri düzey ipuçları paylaşarak konuya derinlemesine bir bakış atacağız. Hazırsanız, projenizin dijital yolculuğuna başlamak için ilk adımı atalım.
GitHub ve Git Temelleri: Bilmeniz Gerekenler Nelerdir?
Mevcut bir projeyi GitHub’a aktarmadan önce, bu platformun temelini oluşturan Git sürüm kontrol sistemi ve GitHub’ın kendisi hakkında net bir anlayışa sahip olmak önemlidir. Bu iki kavram, modern yazılım geliştirme dünyasında ayrılmaz bir bütündür ve birlikte projenizin yönetimini devrim niteliğinde kolaylaştırır.
Git Nedir ve Neden Kullanılır?
Git, Linus Torvalds tarafından 2005 yılında geliştirilen dağıtık bir sürüm kontrol sistemidir (DVCS). Dağıtık olması, her geliştiricinin projenin tam bir kopyasına (depo veya “repository”) sahip olduğu anlamına gelir. Bu sayede, internet bağlantısı olmadan da projeler üzerinde çalışabilir ve değişiklikleri yerel olarak kaydedebilirsiniz. Git’in temel amacı, bir projenin zaman içindeki tüm değişikliklerini takip etmek, farklı versiyonlar arasında geçiş yapmak ve birden fazla geliştiricinin aynı proje üzerinde çakışma yaşamadan çalışmasını sağlamaktır.
Git’in sunduğu bazı temel avantajlar şunlardır:
- Sürüm Takibi: Projenizin her anındaki durumunu kaydedebilir, önceki versiyonlara kolayca dönebilirsiniz. Bu, hataları geri almanızı veya belirli bir tarihteki kodu incelemenizi sağlar.
- İşbirliği: Birden fazla geliştiricinin aynı kod tabanı üzerinde eşzamanlı olarak çalışmasına olanak tanır. Değişiklikler birleştirilirken (merge) oluşabilecek çakışmalar yönetilebilir.
- Yedekleme ve Güvenlik: Kodunuzun farklı kopyaları farklı geliştiricilerde ve uzak depolarda (GitHub gibi) bulunduğu için veri kaybı riski azalır.
- Dallanma (Branching): Ana kod tabanından bağımsız olarak yeni özellikler geliştirmek veya hataları düzeltmek için dallar oluşturabilirsiniz. Bu, ana projenin istikrarını korurken yenilik yapmanızı sağlar.
Git, yerel bilgisayarınızda çalışan bir yazılımdır ve komut satırı aracılığıyla kullanılır. Projenizin her bir “anlık görüntüsü” (snapshot) bir “commit” olarak kaydedilir. Bu commit’ler, projenizin tarihçesini oluşturan bir zincir oluşturur.
GitHub Nedir ve Git ile İlişkisi Nasıldır?
GitHub, Git depolarını barındırmak için kullanılan web tabanlı bir platformdur. Git’in kendisi bir sürüm kontrol sistemi iken, GitHub bu sistemin uzaktan erişilebilir, sosyal ve işbirlikçi bir arayüzünü sunar. Yani, Git yerel bilgisayarınızda çalışırken, GitHub kodunuzu internet üzerinde barındırır ve diğer geliştiricilerle paylaşmanızı, projelerinizi yönetmenizi ve açık kaynak topluluğuna katkıda bulunmanızı sağlar.
GitHub’ın temel özellikleri:
- Uzak Depolar (Remote Repositories): Git depolarınızın internet üzerinde bir kopyasını barındırır. Bu, kodunuzu dünyanın her yerinden erişilebilir kılar.
- İşbirliği Araçları: Sorun takibi (Issues), çekme istekleri (Pull Requests), kod incelemeleri ve proje yönetimi panoları gibi özelliklerle ekip çalışmasını kolaylaştırır.
- Sosyal Kodlama: Diğer geliştiricilerin projelerini keşfetmenizi, takip etmenizi ve katkıda bulunmanızı sağlar. Kendi projelerinizi de sergileyerek bir geliştirici portföyü oluşturabilirsiniz.
- Entegrasyonlar: CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) araçları, bulut servisleri ve diğer geliştirme araçlarıyla entegrasyon imkanı sunar.
Özetle, Git projenizin yerel sürüm kontrolünü sağlarken, GitHub bu yerel depoları merkezi bir sunucuda barındırarak işbirliği ve paylaşım olanakları sunar. Mevcut projenizi GitHub’a yüklemek, aslında Git kullanarak projenizi yerel bir depoya dönüştürmek ve ardından bu yerel depoyu GitHub’daki uzak bir depoya “push” etmek anlamına gelir.
Projenizi GitHub’a Yüklemeden Önce Yapılması Gerekenler
Mevcut bir projeyi GitHub’a aktarma sürecine başlamadan önce atmanız gereken birkaç önemli adım bulunmaktadır. Bu hazırlıklar, sürecin sorunsuz ilerlemesini sağlayacak ve projenizin doğru bir şekilde yönetilmesine zemin hazırlayacaktır. Bu adımlar, Git’in kurulumundan, GitHub hesabınızın oluşturulmasına ve projenizin yapısını düzenlemeye kadar uzanır.
1. Git’i Bilgisayarınıza Kurun
GitHub ile etkileşim kurabilmek için bilgisayarınızda Git’in yüklü olması gerekir. Git’i henüz kurmadıysanız, işletim sisteminize göre aşağıdaki adımları izleyebilirsiniz:
- Windows: Git for Windows web sitesinden kurulum dosyasını indirip varsayılan ayarlarla kurabilirsiniz. Kurulum sırasında “Git Bash” seçeneğini etkinleştirdiğinizden emin olun, çünkü bu rehberde komutları Git Bash üzerinden vereceğiz.
- macOS: Homebrew kullanıyorsanız, terminali açıp
brew install gitkomutunu çalıştırabilirsiniz. Ya da Git’in resmi web sitesinden yükleyiciyi indirebilirsiniz.
- Linux: Çoğu Linux dağıtımında Git, paket yöneticisi aracılığıyla kurulabilir. Örneğin, Debian/Ubuntu tabanlı sistemlerde
sudo apt-get install git, Fedora tabanlı sistemlerde ise
sudo dnf install gitkomutunu kullanabilirsiniz.
Kurulumu tamamladıktan sonra, terminal veya Git Bash’i açarak Git’in doğru bir şekilde yüklendiğini ve sürümünü kontrol edebilirsiniz:
git --version
Bu komut, yüklü Git sürümünü size gösterecektir.
2. GitHub Hesabı Oluşturun ve Temel Ayarları Yapın
Eğer henüz bir GitHub hesabınız yoksa, github.com/join adresinden ücretsiz bir hesap oluşturmanız gerekmektedir. Hesap oluşturma işlemi oldukça basittir ve e-posta doğrulaması gerektirir. Hesabınızı oluşturduktan sonra, yerel Git kurulumunuzu GitHub hesabınızla ilişkilendirmek için bazı temel ayarları yapmanız önemlidir. Bu, yaptığınız commit’lerin kimin tarafından yapıldığını gösterir:
git config --global user.name "Adınız Soyadınız"
git config --global user.email "eposta@adresiniz.com"
Bu komutlar, Git’in her commit için kullanacağı kullanıcı adınızı ve e-posta adresinizi global olarak ayarlar. Bu bilgilerin GitHub hesabınızdaki bilgilerle eşleşmesi önerilir.
3. Proje Klasörünüzü Hazırlayın ve .gitignore Dosyasını Oluşturun
GitHub’a yüklemek istediğiniz mevcut projenizin klasörünü belirleyin. Bu klasör, tüm kaynak kodlarınızı, varlıklarınızı ve proje dosyalarınızı içermelidir. Projenizin kök dizininde, Git’in takip etmesini istemediğiniz dosyaları ve klasörleri belirtmek için bir .gitignore dosyası oluşturmanız kritik öneme sahiptir.
.gitignore dosyası, Git’in görmezden gelmesi gereken dosyaları ve dizinleri listeler. Bu genellikle şunları içerir:
- Derlenmiş kodlar (örneğin,
.class,.o,*.exe) - Bağımlılık klasörleri (örneğin,
node_modules,vendor,.venv) - Geçici dosyalar veya günlük dosyaları (örneğin,
*.log,*.tmp) - IDE (Entegre Geliştirme Ortamı) ayarları (örneğin,
.idea/,.vscode/) - Hassas bilgiler içeren dosyalar (örneğin, API anahtarları, veritabanı şifreleri)
Örnek bir .gitignore dosyası şöyle görünebilir:
# Derlenmiş kodlar
*.o
*.exe
*.dll
# Bağımlılık klasörleri
node_modules/
vendor/
.venv/
# Geçici dosyalar
*.log
*.tmp
temp/
# IDE dosyaları
.idea/
.vscode/
*.swp
Bu dosya, projenizin boyutunu küçültmenin yanı sıra, gereksiz veya hassas bilgilerin yanlışlıkla uzak depoya yüklenmesini önler. Her proje türü için özel .gitignore şablonlarını GitHub’ın kendi deposunda bulabilirsiniz.
4. README.md Dosyası Oluşturun (İsteğe Bağlı ama Şiddetle Tavsiye Edilir)
Projenizin kök dizininde bir README.md dosyası oluşturmak, projenizin ne hakkında olduğunu, nasıl kurulacağını, nasıl çalıştırılacağını ve nasıl katkıda bulunulacağını açıklayan bir belgedir. Bu dosya, GitHub deposu ana sayfasında otomatik olarak görüntülenir ve projenizin ilk izlenimini oluşturur. İyi yazılmış bir README, projenizin anlaşılırlığını ve kullanımını büyük ölçüde artırır. Markdown formatında yazılır ve başlıklar, listeler, kod blokları gibi öğeleri içerebilir.
Bu hazırlık adımlarını tamamladıktan sonra, projenizi GitHub’a yüklemeye hazırsınız demektir. Artık komut satırı ile Git’i kullanarak projenizi uzak depoya gönderebiliriz.
Mevcut Projenizi GitHub’a Adım Adım Nasıl Yüklersiniz?
Projenizi GitHub’a yüklemek, Git komutlarını kullanarak yerel bir depo oluşturma ve ardından bu depoyu GitHub’daki uzak bir depoya bağlama sürecini içerir. Bu bölümde, bu adımları detaylı bir şekilde ve komut örnekleriyle ele alacağız.
Tüm bu adımları, projenizin kök dizininde açtığınız bir terminal veya Git Bash penceresinde gerçekleştireceksiniz. Örnek olarak, projenizin C:/Users/KullaniciAdi/Documents/MyProject klasöründe olduğunu varsayalım.
Adım 1: Proje Klasörünüze Gidin
İlk olarak, komut satırınızı projenizin ana klasörüne yönlendirin. Bu, Git’in doğru dizinde çalıştığından emin olmanızı sağlar.
cd C:/Users/KullaniciAdi/Documents/MyProject
Mac veya Linux kullanıyorsanız, yolunuz buna benzer olacaktır: /Users/KullaniciAdi/Documents/MyProject.
Adım 2: Yerel Bir Git Deposu Başlatın
Proje klasörünüzde yerel bir Git deposu oluşturmak için git init komutunu kullanın. Bu komut, projenizin kök dizininde gizli bir .git klasörü oluşturur. Bu klasör, Git’in projenizin tüm sürüm geçmişini ve yapılandırmasını sakladığı yerdir.
git init
Bu komutun çıktısı genellikle “Initialized empty Git repository in C:/Users/KullaniciAdi/Documents/MyProject/.git/” şeklinde olacaktır.
Adım 3: Dosyaları Hazırlık Alanına Ekleyin (Staging Area)
Git’in değişiklikleri takip etmesi için, hangi dosyaların bir sonraki commit’e dahil edileceğini belirtmeniz gerekir. Bu, dosyaları “hazırlık alanı”na (staging area) ekleyerek yapılır. Tüm proje dosyalarınızı eklemek için git add . komutunu kullanabilirsiniz. Eğer sadece belirli dosyaları eklemek isterseniz, git add şeklinde kullanabilirsiniz.
git add .
Bu komut, .gitignore dosyasında belirtilenler dışındaki tüm dosyaları ve klasörleri hazırlık alanına ekler. Bu adımdan sonra, Git’e “Bu dosyaların mevcut durumunu kaydetmek istiyorum” demiş olursunuz.
Adım 4: Değişiklikleri Kaydedin (Commit)
Hazırlık alanındaki dosyaları yerel depoya kalıcı olarak kaydetmek için git commit komutunu kullanırız. Her commit, yapılan değişiklikleri açıklayan kısa ve anlamlı bir mesaj içermelidir. Bu mesaj, projenizin geçmişini anlamak için çok önemlidir.
git commit -m "İlk commit: Mevcut projeyi ekledim"
-m bayrağı, commit mesajını doğrudan komut satırında belirtmenizi sağlar. Çıktıda, kaç dosyanın değiştiği ve kaç satırın eklendiği/silindiği gibi bilgiler yer alacaktır.
Adım 5: GitHub’da Yeni Bir Depo Oluşturun
Şimdi GitHub’a gidin (github.com) ve hesabınıza giriş yapın. Sağ üst köşedeki “+” simgesine tıklayarak veya sol paneldeki “Repositories” altında “New” butonuna basarak yeni bir depo oluşturun.
Depo oluşturma sayfasında aşağıdaki bilgileri girin:
- Repository name: Projenizin adını girin (örneğin,
my-existing-project). Bu ad, yerel proje klasörünüzün adıyla aynı olmak zorunda değildir, ancak tutarlılık açısından önerilir. - Description (optional): Projeniz hakkında kısa bir açıklama yazın.
- Public/Private: Deponuzun herkese açık mı (Public) yoksa sadece sizin ve belirlediğiniz kişilerin erişimine açık mı (Private) olacağını seçin.
- README, .gitignore, License: Bu seçenekleri ŞİMDİLİK işaretlemeyin. Çünkü bu dosyaları zaten yerel projenizde hazırladık veya hazırlayacağız. Eğer işaretlerseniz, yerel deponuzla uzak depo arasında çakışmalar yaşayabilirsiniz.
“Create repository” butonuna tıklayarak depoyu oluşturun.
Adım 6: Uzak Depoyu Yerel Deponuza Bağlayın
Depoyu oluşturduktan sonra GitHub size, yerel deponuzu bu yeni uzak depoya nasıl bağlayacağınızı gösteren bir sayfa sunacaktır. Bu sayfadaki “…or push an existing repository from the command line” başlığı altındaki komutları kullanacağız.
İlk olarak, yerel Git deponuza uzak deponun adresini (URL) eklemeniz gerekir. Bu adrese genellikle origin adı verilir.
git remote add origin https://github.com/KullaniciAdiniz/my-existing-project.git
https://github.com/KullaniciAdiniz/my-existing-project.git kısmını kendi GitHub kullanıcı adınız ve depo adınızla değiştirmeniz gerekmektedir. Eğer SSH kullanmak isterseniz, URL formatı git@github.com:KullaniciAdiniz/my-existing-project.git şeklinde olacaktır. SSH anahtarları hakkında daha fazla bilgi için ileri düzey ipuçları bölümüne bakabilirsiniz.
git remote remove origin
komutuyla kaldırıp doğru adresi tekrar ekleyebilirsiniz. Mevcut uzak depoları
git remote -v
komutuyla görüntüleyebilirsiniz.
Adım 7: Değişiklikleri Uzak Depoya Gönderin (Push)
Son adım, yerel deponuzdaki commit’leri GitHub’daki uzak depoya göndermektir. Bu işlem “push” olarak adlandırılır.
git push -u origin main
Burada:
git push: Değişiklikleri uzak depoya gönderme komutu.-u(veya--set-upstream): Yerelmaindalını (masterda olabilir, yeni depolardamainvarsayılandır)originuzak deposundakimaindalına bağlar. Bu, daha sonra sadecegit pushveyagit pullyazmanızı sağlar.origin: Uzak deponun adıdır (önceki adımda tanımladık).main: Göndermek istediğiniz yerel dalın adıdır. GitHub’ın varsayılan dal adı artıkmain‘dir. Eğer sizin yerel deponuzda varsayılan dalmasterise, bu komutugit push -u origin masterolarak değiştirmeniz gerekebilir.
Bu komutu çalıştırdığınızda, GitHub kullanıcı adınızı ve parolanızı (veya kişisel erişim belirtecinizi – Personal Access Token) girmeniz istenebilir. Başarılı bir şekilde gönderildiğinde, GitHub deponuzu yenilediğinizde projenizin tüm dosyalarını göreceksiniz.
Tebrikler! Mevcut projenizi GitHub’a başarıyla yüklediniz. Artık projenizin sürüm kontrolü altında ve çevrimiçi olarak erişilebilir durumda.
Bir Web Projesini GitHub’a Aktarma: Vaka Analizi
Teorik bilgileri ve adım adım rehberi anladığımıza göre, şimdi bu bilgileri gerçek dünya senaryosunda, basit bir web projesi üzerinden uygulayalım. Bu vaka analizi, HTML, CSS ve JavaScript dosyalarından oluşan tipik bir web projesinin GitHub’a nasıl aktarılacağını görselleştirecektir.
Senaryo: Basit Bir Kişisel Web Sitesi
Diyelim ki, yerel bilgisayarınızda my-personal-website adında bir klasörde, aşağıdaki dosya yapısına sahip basit bir kişisel web sitesi projeniz var:
my-personal-website/
├── index.html
├── css/
│ └── style.css
├── js/
│ └── script.js
└── images/
└── profile.jpg
Bu projeyi GitHub’a yükleyerek hem sürüm kontrolü sağlamak hem de potansiyel işverenlere veya arkadaşlara sergilemek istiyorsunuz.
Adım Adım Uygulama
1. Proje Klasörüne Gitme ve Git’i Başlatma
Terminali (veya Git Bash’i) açın ve proje klasörünüze gidin:
cd /path/to/my-personal-website
git init
Bu, my-personal-website klasöründe boş bir Git deposu başlatır.
2. .gitignore ve README.md Dosyalarını Oluşturma
Web projelerinde genellikle node_modules (eğer bir frontend framework kullanıyorsanız) veya geçici derleme dosyaları gibi Git’in takip etmesini istemediğimiz öğeler bulunur. Ayrıca, projenin ne hakkında olduğunu açıklayan bir README.md dosyası eklemek de iyi bir uygulamadır.
Proje kök dizininde .gitignore adında bir dosya oluşturun ve içine şunları ekleyin:
# Node.js bağımlılıkları
node_modules/
.DS_Store # macOS sistem dosyası
# IDE dosyaları (örneğin VS Code)
.vscode/
# Geçici dosyalar
*.log
Ardından, README.md adında bir dosya oluşturun ve projenizi açıklayan bir içerik ekleyin:
# Kişisel Web Sitem
Bu depo, benim kişisel web sitemin kaynak kodunu içermektedir. HTML, CSS ve JavaScript kullanılarak geliştirilmiştir.
Kurulum
Herhangi bir özel kurulum gerektirmez. index.html dosyasını tarayıcınızda açarak görüntüleyebilirsiniz.
İçerik
- index.html: Ana sayfa
- css/style.css: Sitenin stil dosyası
- js/script.js: JavaScript fonksiyonları
- images/: Resimler
3. Dosyaları Hazırlık Alanına Ekleme ve Commit Etme
Şimdi tüm proje dosyalarını ve yeni oluşturduğumuz .gitignore ile README.md dosyalarını hazırlık alanına ekleyip commit edelim:
git add .
git commit -m "İlk commit: Kişisel web sitesi projesi eklendi"
Bu komutlar, projenizin mevcut durumunu yerel Git deponuza kaydeder.
4. GitHub’da Yeni Depo Oluşturma
GitHub’a gidin, yeni bir depo oluşturun ve adını my-personal-website olarak belirleyin. Açıklama ekleyin ve README, .gitignore veya License seçeneklerini işaretlemeden depoyu oluşturun.
5. Uzak Depoyu Bağlama ve Yükleme
GitHub, yeni depo sayfasında size aşağıdaki gibi komutları gösterecektir (kullanıcı adınız ve depo adınız farklı olacaktır):
git remote add origin https://github.com/SizinKullaniciAdiniz/my-personal-website.git
git branch -M main # Eğer yerel dalınız master ise ve GitHub'da main istiyorsanız
git push -u origin main
git branch -M main komutu, yerel dalınızın adını main olarak değiştirir ve GitHub’ın varsayılan main dalıyla uyumlu hale getirir. Eğer yerel dalınız zaten main ise bu adıma gerek yoktur. git push komutu ile projeniz GitHub’a gönderilecektir.
Tüm bu adımları başarıyla tamamladığınızda, my-personal-website projeniz GitHub’da yayınlanmış olacak. GitHub sayfasını yenilediğinizde, tüm dosyalarınızı ve oluşturduğunuz README.md dosyasının içeriğini göreceksiniz. Artık bu proje üzerinde değişiklikler yapabilir, yeni commit’ler oluşturabilir ve bunları düzenli olarak GitHub’a “push” edebilirsiniz. Bu vaka analizi, mevcut bir projenin GitHub’a aktarılmasının ne kadar pratik ve doğrudan bir süreç olduğunu göstermektedir.
Deneyimli Kullanıcılar İçin İpuçları ve Püf Noktaları
Mevcut bir projeyi GitHub’a yüklemenin temel adımlarını öğrendikten sonra, deneyimli kullanıcılar için süreci daha verimli hale getirecek ve potansiyel sorunları önleyecek bazı ileri düzey ipuçları ve püf noktaları bulunmaktadır. Bu teknikler, Git ve GitHub’ı daha güçlü bir şekilde kullanmanızı sağlayacaktır.
1. SSH Anahtarları ile Kimlik Doğrulama
Her git push veya git pull işleminde kullanıcı adı ve parola girmek yerine, SSH anahtarlarını kullanarak kimlik doğrulamasını otomatikleştirebilirsiniz. Bu, özellikle sık sık uzak depoyla etkileşim kuran geliştiriciler için zaman kazandırır ve güvenliği artırır.
SSH anahtarı oluşturma ve GitHub’a ekleme süreci genellikle şöyledir:
- Terminalde
ssh-keygen -t ed25519 -C "your_email@example.com"komutunu çalıştırarak yeni bir SSH anahtarı oluşturun.
- Anahtarı
ssh-agent‘a ekleyin. - Genel anahtarınızı (
~/.ssh/id_ed25519.pubdosyasının içeriği) kopyalayın. - GitHub hesabınızda “Settings” -> “SSH and GPG keys” bölümüne gidin ve yeni bir SSH anahtarı ekleyin, kopyaladığınız anahtarı yapıştırın.
Bu adımları tamamladıktan sonra, uzak depo URL’sini HTTPS yerine SSH formatında kullanabilirsiniz:
git remote set-url origin git@github.com:KullaniciAdiniz/depo-adi.git
Artık push ve pull işlemleri için parola girmeniz gerekmeyecek.
2. .gitignore Dosyasının Gücü: Detaylı Kullanım
Daha önce bahsettiğimiz .gitignore dosyası, sadece temel dosyaları dışlamakla kalmaz, aynı zamanda daha karmaşık desenleri de destekler:
/logs/: Kök dizindekilogsklasörünü yoksayar, ancak alt dizinlerdekilogsklasörlerini yoksaymaz.doc/*.txt:docklasöründeki tüm.txtdosyalarını yoksayar.!src/main.js: Genel olarak yoksayılan bir desenin içinde belirli bir dosyayı tekrar dahil etmek için kullanılır. Örneğin,*.jsile tüm JS dosyalarını yoksayıp,!src/main.jsile sadecemain.js‘i dahil edebilirsiniz.
Projenizin yapısına uygun, kapsamlı bir .gitignore dosyası kullanmak, deponuzun temiz kalmasını ve gereksiz dosyaların sürüm kontrolüne girmesini engeller.
3. Dallanma Stratejileri (Branching Strategies)
Tek bir main (veya master) dalında çalışmak küçük projeler için yeterli olabilirken, daha büyük veya ekip tabanlı projelerde çeşitli dallanma stratejileri (örneğin Git Flow, GitHub Flow) kullanılır. Bu stratejiler, yeni özellik geliştirme, hata düzeltme ve sürüm yönetimi için farklı dallar oluşturmayı ve bunları ana dalla birleştirmeyi içerir.
git branch feature/yeni-ozellik # Yeni bir özellik dalı oluştur
git checkout feature/yeni-ozellik # Yeni dala geç
# Değişiklikler yap ve commit et
git add .
git commit -m "Yeni özellik eklendi"
git push origin feature/yeni-ozellik # Dalı uzak depoya gönder
Bu, ana dalın (main) her zaman stabil kalmasını sağlarken, paralel geliştirmeye olanak tanır.
4. git status ve git log Komutlarının Önemi
Projeniz üzerinde çalışırken, git status ve git log komutlarını sıkça kullanarak mevcut durumu ve geçmişi takip etmeniz önemlidir:
git status: Hangi dosyaların değiştiğini, hangi dosyaların hazırlık alanında olduğunu ve hangi dosyaların takip edilmediğini gösterir. Bu, commit yapmadan önce neyin kaydedileceğini kontrol etmenizi sağlar.git log: Deponuzun commit geçmişini gösterir. Her commit’in yazarını, tarihini ve mesajını görebilirsiniz.git log --oneline --graphgibi varyasyonlar, geçmişi daha okunabilir bir formatta sunar.
5. git pull ile Senkronizasyon
Eğer bir ekiple çalışıyorsanız veya projenize farklı bir bilgisayardan erişiyorsanız, yerel deponuzu uzak depodaki değişikliklerle senkronize etmek için git pull komutunu kullanmanız gerekir.
git pull origin main
Bu komut, uzak depodaki main dalındaki tüm değişiklikleri yerel main dalınıza çeker ve birleştirir.
git pull aslında iki komutun kısaltmasıdır: git fetch (uzak depodaki değişiklikleri indirir) ve git merge (bu değişiklikleri yerel dala birleştirir). Bazen git fetch komutunu kullanarak değişiklikleri önce inceleyip sonra git merge ile birleştirmek isteyebilirsiniz.
6. Kod Blokları ve Mobil Uyumluluk
Teknik makalelerde kod blokları, örnekleri daha anlaşılır kılar. HTML içerisinde
...
etiketleri kullanarak kod blokları oluşturmak standart bir yöntemdir. Mobil uyumluluk açısından, bu blokların küçük ekranlarda taşmasını önlemek için CSS ile overflow-x: auto; gibi özellikler eklemek faydalıdır.
Örnek bir mobil uyumlu kod bloğu CSS’i:
<style>
@media (max-width: 768px) {
pre {
overflow-x: auto; /* Küçük ekranlarda yatay kaydırma çubuğu */
white-space: pre-wrap; /* Uzun satırları sar */
word-wrap: break-word; /* Kelimeleri böl */
}
}
</style>
Bu ipuçları, Git ve GitHub deneyiminizi zenginleştirecek ve projelerinizi daha profesyonel bir şekilde yönetmenize yardımcı olacaktır. Unutmayın, Git’in gücü pratikle artar; bu komutları düzenli olarak kullanarak ustalaşabilirsiniz.
Sık Karşılaşılan Sorunlar ve Çözümleri
Mevcut bir projeyi GitHub’a yüklerken veya sonrasında çalışırken karşılaşabileceğiniz bazı yaygın sorunlar ve bunların basit çözümleri bulunmaktadır. Bu bölüm, olası engelleri aşmanız için size rehberlik edecektir.
1. “remote: Repository not found” veya “Authentication failed” Hatası
Bu hata genellikle uzak depo URL’sinin yanlış girilmesi veya kimlik doğrulama sorunları nedeniyle ortaya çıkar.
- Çözüm 1: Uzak Depo URL’sini Kontrol Edin. GitHub’daki deponuzun URL’sinin doğru olduğundan emin olun. Genellikle
https://github.com/KullaniciAdiniz/DepoAdiniz.gitformatında olmalıdır. Yanlış URL’yi düzeltmek için:git remote set-url origin https://github.com/KullaniciAdiniz/DepoAdiniz.git - Çözüm 2: Kimlik Doğrulamasını Kontrol Edin. Eğer HTTPS kullanıyorsanız, kullanıcı adınız ve parolanız (veya Personal Access Token – PAT) doğru olmalıdır. GitHub, parola ile kimlik doğrulamasını kaldırdığı için PAT kullanmanız önerilir. Eğer SSH kullanıyorsanız, SSH anahtarınızın doğru bir şekilde kurulduğundan ve GitHub hesabınıza eklendiğinden emin olun.
2. “src refspec main does not match any” Hatası
Bu hata, yerel deponuzda göndermeye çalıştığınız dalın (genellikle main veya master) bulunmadığı anlamına gelir.
- Çözüm: Yerel Dal Adını Kontrol Edin.
git branchkomutunu kullanarak mevcut yerel dal adınızı kontrol edin. Eğer dalınızmasterise, push komutunugit push -u origin masterolarak değiştirin. Eğer dal adınız farklıysa, o dal adını kullanın. İsterseniz yerel dal adınızımainolarak değiştirebilirsiniz:git branch -M main git push -u origin main
3. “Updates were rejected because the remote contains work that you do not have locally” Hatası
Bu hata, uzak depoda (GitHub’da) sizin yerel deponuzda olmayan değişiklikler olduğu zaman ortaya çıkar. Git, sizin değişikliklerinizi göndermeden önce uzak depodaki değişiklikleri yerel deponuza çekmenizi ister.
- Çözüm: Önce Uzak Depodan Çekin.
git pullkomutunu kullanarak uzak depodaki değişiklikleri yerel deponuza çekin ve birleştirin:git pull origin mainEğer çakışmalar (merge conflicts) oluşursa, bunları manuel olarak çözmeniz gerekecektir. Çakışmaları çözdükten sonra, dosyaları tekrar hazırlık alanına ekleyip commit edin ve ardından
git pushyapın.
4. .gitignore Dosyası Çalışmıyor
Bazen .gitignore dosyası eklemenize rağmen, yoksayılması gereken dosyalar Git tarafından hala takip ediliyor gibi görünebilir.
- Çözüm: Git Önbelleğini Temizleyin. Eğer dosyalar
.gitignoredosyası oluşturulmadan önce Git tarafından zaten takip ediliyorsa,.gitignoreonları yoksaymaz. Bu durumda, Git’in önbelleğinden bu dosyaları kaldırmanız gerekir:git rm -r --cached . git add . git commit -m "gitignore dosyası güncellendi ve önbellek temizlendi" git push origin mainBu komutlar, Git’in tüm dosyaları takip etmeyi bırakmasını sağlar, sonra
.gitignorekurallarına göre yeniden ekler.
Bu yaygın sorunları ve çözümlerini bilmek, projenizi GitHub’a yükleme ve yönetme sürecinizi çok daha sorunsuz hale getirecektir. Unutmayın, hata mesajlarını dikkatlice okumak ve anlamak, sorunun kökenini bulmada ilk adımdır.
Özet ve Sıkça Sorulan Sorular
Bu kapsamlı rehber boyunca, mevcut bir projeyi GitHub’a yüklemenin neden önemli olduğundan, Git ve GitHub’ın temel kavramlarına, adım adım yükleme sürecine, gerçek dünya senaryolarına ve ileri düzey ipuçlarına kadar birçok konuyu ele aldık. Artık projelerinizi sürüm kontrolü altına almanın ve küresel geliştirici topluluğuyla paylaşmanın gücüne sahipsiniz.
Özetle, süreç şu adımlardan oluşur:
- Git’i kurun ve GitHub hesabınızı yapılandırın.
- Projenizin kök dizininde
git initile yerel bir Git deposu başlatın. git add .ile dosyalarınızı hazırlık alanına ekleyin vegit commit -m "mesaj"ile değişiklikleri kaydedin.- GitHub’da yeni bir boş depo oluşturun (README, .gitignore gibi seçenekleri işaretlemeden).
git remote add originile yerel deponuzu uzak depoya bağlayın.git push -u origin mainile projenizi GitHub’a gönderin.
Bu adımları takip ederek projelerinizi güvenle yedekleyebilir, işbirliği yapabilir ve kodunuzun gelişimini etkili bir şekilde yönetebilirsiniz. Unutmayın, Git ve GitHub’ı düzenli olarak kullanmak, bu araçlarda ustalaşmanın en iyi yoludur.
Sıkça Sorulan Sorular (SSS)
S: GitHub’a proje yüklemek için her zaman komut satırı kullanmak zorunda mıyım?
C: Hayır, zorunda değilsiniz. Git GUI (Grafiksel Kullanıcı Arayüzü) araçları (örneğin, GitHub Desktop, SourceTree, GitKraken) veya entegre geliştirme ortamlarının (IDE) (örneğin, VS Code, IntelliJ IDEA) yerleşik Git entegrasyonlarını kullanarak da projelerinizi yönetebilirsiniz. Ancak komut satırını öğrenmek, Git’in temel prensiplerini anlamak ve sorun giderme yeteneğinizi geliştirmek için şiddetle tavsiye edilir.
S: master ve main dalları arasındaki fark nedir?
C: master ve main her ikisi de bir Git deposundaki ana geliştirme dalını ifade etmek için kullanılan isimlerdir. Geleneksel olarak master kullanılırdı, ancak GitHub ve diğer platformlar, daha kapsayıcı bir dil kullanma çabalarının bir parçası olarak varsayılan dal adını main olarak değiştirdi. İşlevsel olarak aralarında bir fark yoktur, sadece isim farkıdır.
S: Yanlışlıkla hassas bilgileri (örneğin, API anahtarları) GitHub’a yüklersem ne yapmalıyım?
C: Bu ciddi bir güvenlik sorunudur. Öncelikle, hassas bilgileri hemen değiştirin veya iptal edin. Ardından, Git geçmişinden bu bilgileri kalıcı olarak silmeniz gerekir. Bu işlem git filter-branch veya daha modern olan BFG Repo-Cleaner gibi araçlarla yapılabilir. Bu karmaşık bir işlem olduğu için dikkatli yapılmalı ve gerekirse uzman yardımı alınmalıdır. Gelecekte bu tür sorunları önlemek için .gitignore dosyasını dikkatli kullanın ve hassas bilgileri ortam değişkenleri veya güvenli yapılandırma dosyaları aracılığıyla yönetin.
S: GitHub’daki bir projeyi yerel bilgisayarıma nasıl indirebilirim?
C: GitHub’daki bir projeyi yerel bilgisayarınıza indirmek için git clone komutunu kullanırsınız. Deponun URL’sini kopyalayıp terminalde şu komutu çalıştırın:
git clone https://github.com/KullaniciAdiniz/DepoAdiniz.git
Bu, depoyu belirtilen URL’den yerel bilgisayarınıza kopyalar ve otomatik olarak bir Git deposu olarak ayarlar.
S: GitHub’da özel (private) bir depo oluşturmanın maliyeti var mı?
C: GitHub, bireysel geliştiriciler ve küçük ekipler için sınırsız sayıda özel depo oluşturma imkanı sunar ve bu ücretsizdir. Daha büyük ekipler veya kurumsal ihtiyaçlar için ek özellikler sunan ücretli planları mevcuttur.