GitHub'a Proje Yükleme: Adım Adım
Yeni bir GitHub deposu açıp yerel projenizi bağlamayı, ilk commit ve push adımlarını, GitHub Desktop ve gh CLI alternatifleriyle anlatıyoruz.

GitHub proje yükleme için önce github.com'da boş bir depo oluşturun. Proje klasörünüzde git init, git add . ve git commit komutlarıyla ilk kaydı alın; git remote add origin ile depoyu bağlayıp git push -u origin main komutuyla gönderin. Komut satırı yerine GitHub Desktop ya da gh repo create komutu da aynı işi yapar.
Başlamadan Önce Neler Gerekir?
GitHub'a proje yüklemek, bilgisayarınızdaki bir klasörü Git deposuna çevirip internetteki bir uzak depoya bağlamak demektir. Bunun için üç şey hazır olmalı: kurulu ve yapılandırılmış Git, bir GitHub hesabı ve kimlik doğrulama yöntemi.
Git'i henüz kurmadıysanız ya da ad, e-posta ve SSH anahtarı ayarlarını yapmadıysanız önce Git kurulumu rehberimizi izleyin. Bu yazıdaki komutlar o ayarların yapıldığını varsayar.
- Git: Terminalde git --version bir sürüm numarası döndürmeli.
- GitHub hesabı: github.com üzerinden ücretsiz açılır.
- Kimlik doğrulama: SSH anahtarı ya da HTTPS için Git Credential Manager veya kişisel erişim token'ı. GitHub, Git işlemlerinde hesap parolasını kabul etmez.
- Temiz bir proje klasörü: Gereksiz ve gizli dosyaları ayıklamak için bir .gitignore dosyası.
GitHub'da Repo Oluşturma
GitHub'a giriş yapın, sağ üstteki artı simgesinden New repository seçeneğine tıklayın. Depo adını kısa ve küçük harfli yazın (örneğin firma-sitesi), açıklama ekleyin ve görünürlüğü seçin.
Bilgisayarınızda zaten bir projeniz varsa README, .gitignore ve lisans eklemeyin; depoyu tamamen boş oluşturun. Aksi hâlde uzak depoda yerelde olmayan bir commit oluşur ve ilk push'ta çakışma yaşarsınız.
| Görünürlük | Kimler görür | Ne zaman seçilir |
|---|---|---|
| Public | Herkes | Açık kaynak projeler, portföy çalışmaları |
| Private | Yalnızca siz ve davet ettikleriniz | Müşteri projeleri, şirket içi kodlar |
.gitignore ile Gereksiz Dosyaları Ayıklayın
İlk commit'ten önce yapılacak en önemli iş, depoya girmemesi gereken dosyaları belirlemektir. node_modules, derleme klasörleri, işletim sistemi dosyaları ve özellikle şifre ya da API anahtarı içeren .env dosyaları asla GitHub'a yüklenmemelidir.
Proje kök klasöründe .gitignore adlı bir dosya oluşturup aşağıdaki gibi satırlar ekleyin. Bağımlılıkların neden depoya girmediğini ve package.json'ın rolünü npm komutları yazımızda anlattık.
- Gizli bir dosyayı yanlışlıkla commit ettiyseniz, sonradan silmek yetmez; dosya geçmişte kalır. İlgili anahtarı ya da şifreyi hemen değiştirin.
- Daha önce izlenmeye başlanmış bir klasörü bırakmak için git rm -r --cached klasor-adi komutunu kullanın, ardından .gitignore'a ekleyip commit edin.
node_modules/
dist/
build/
.env
.env.*
.DS_Store
Thumbs.db
*.logKomut Satırıyla İlk Yükleme
Terminalde proje klasörüne geçin ve aşağıdaki komutları sırayla çalıştırın. Uzak depo adresini, GitHub'daki boş deponun sayfasında Code düğmesinin altında bulursunuz; SSH anahtarı kurduysanız SSH adresini, kurmadıysanız HTTPS adresini kopyalayın.
- git init ile klasörü Git deposuna çevirin.
- git add . ile tüm dosyaları hazırlık alanına alın.
- git commit ile ilk kaydı oluşturun.
- Dal adını main olarak sabitleyin.
- git remote add origin ile uzak depoyu bağlayın.
- git push -u origin main ile gönderin; -u bayrağı sonraki push'larda yalnızca git push yazmanızı sağlar.
cd proje-klasoru
git init
git add .
git commit -m "İlk commit"
git branch -M main
# SSH adresi
git remote add origin git@github.com:kullanici-adi/depo-adi.git
# ya da HTTPS adresi
# git remote add origin https://github.com/kullanici-adi/depo-adi.git
git push -u origin maingit remote -v
git status
git log --onelineGitHub Desktop ve gh CLI ile Yükleme
Komut satırı tek yol değil. Görsel arayüz tercih edenler için GitHub Desktop, terminalde daha hızlı çalışmak isteyenler için GitHub'ın resmî komut satırı aracı gh aynı işi birkaç adımda yapar.
GitHub Desktop
GitHub Desktop'ı kurup hesabınızla giriş yapın. File menüsünden Add local repository ile proje klasörünüzü seçin; klasör henüz depo değilse uygulama oluşturmayı önerir. Değişiklikleri sol panelde görür, alttaki kutuya mesaj yazıp Commit düğmesine basarsınız. Son olarak Publish repository düğmesi depoyu GitHub'da oluşturup gönderir.
gh CLI
gh ile depo oluşturma, bağlama ve gönderme tek komutta birleşir. İlk kullanımda gh auth login ile tarayıcı üzerinden oturum açarsınız.
gh auth login
# Klasörde en az bir commit varken
gh repo create depo-adi --private --source=. --remote=origin --pushVS Code ile
VS Code'un kaynak denetimi panelinde Publish to GitHub düğmesi de aynı akışı sunar. Editör kurulumu ve Git entegrasyonu için VS Code kurulumu rehberimize bakabilirsiniz.
Güncellemeleri Nasıl Gönderirim?
İlk yüklemeden sonra günlük akış üç komuttan ibarettir: değişiklikleri hazırla, kaydet, gönder. Başka bir bilgisayarda ya da ekip arkadaşınız değişiklik yaptıysa, çalışmaya başlamadan önce git pull ile güncel hâli alın.
Commit mesajlarını kısa ve anlamlı yazın: “güncelleme” yerine “iletişim formuna telefon alanı eklendi” gibi. Altı ay sonra geçmişe baktığınızda hangi değişikliğin neden yapıldığını bu mesajlardan anlarsınız.
git pull
git add .
git commit -m "İletişim formuna telefon alanı eklendi"
git pushDallarla çalışmak
Büyük bir değişikliği doğrudan main dalında yapmak yerine yeni bir dal açın: git switch -c yeni-ozellik. Dalı git push -u origin yeni-ozellik ile gönderin ve GitHub'da bir pull request açın. Böylece değişiklik birleşmeden önce incelenir ve main dalı her zaman çalışır durumda kalır.
Sık Push Hataları ve Çözümleri
İlk push denemelerinde karşılaşılan hataların çoğu kimlik doğrulama, dal adı ya da uzak depodaki beklenmedik commit'lerle ilgilidir.
- src refspec main does not match any: Henüz commit yoktur ya da dalınızın adı master'dır. git commit yapın veya git branch -M main ile dalı yeniden adlandırın.
- remote origin already exists: Uzak depo zaten tanımlıdır. Adresi değiştirmek için git remote set-url origin yeni-adres kullanın.
- rejected (fetch first / non-fast-forward): Uzak depoda yerelde olmayan commit vardır, çoğunlukla GitHub'da oluşturulan README. git pull --rebase origin main ile alıp yeniden push edin. Geçmişler tamamen ilgisizse git pull origin main --allow-unrelated-histories gerekebilir.
- Permission denied (publickey): SSH anahtarınız hesaba eklenmemiştir; ssh -T git@github.com ile test edin.
- Büyük dosya hatası: GitHub, 100 MB'ı aşan tek dosyaları kabul etmez. Videoları ve yedekleri depodan çıkarın ya da Git LFS kullanın.
GitHub İşletme Projelerine Ne Katar?
Kodun GitHub'da durması, bilgisayar arızası ya da kayıp gibi durumlarda projenin kaybolmamasını sağlar. Daha da önemlisi, her değişikliğin izlenebilir olması sayesinde bir hata canlı siteye çıktığında hangi commit'in soruna yol açtığı hızla bulunur ve geri alınır.
Bir web sitesinde yapılan görsel sıkıştırma, kod küçültme gibi hız ve performans iyileştirmeleri de ayrı commit'ler olarak kaydedildiğinde, hangisinin ne kadar fark yarattığını ölçmek kolaylaşır. Kurumsal web sitesi ve web tasarımı projelerimizde bu disiplinle çalışıyoruz.
Depoya iyi yazılmış bir README dosyası eklemeyi de unutmayın. Projenin ne yaptığını, nasıl kurulduğunu ve hangi komutla çalıştırıldığını anlatan birkaç paragraf, yeni bir ekip üyesinin ya da sizin aylar sonra projeye dönüşünüzü saatlerce kısaltır. Ortam değişkenlerinin listesini değerleriyle değil, yalnızca adlarıyla yazın.
Diğer adım adım anlatımlar için kurulum rehberleri kategorisine göz atabilirsiniz.
Sık Sorulan Sorular
01GitHub'a proje yüklemek ücretli mi?
Hayır. GitHub'ın ücretsiz planında sınırsız public ve private depo açabilirsiniz. Ücretli planlar daha çok ekip yönetimi, gelişmiş güvenlik ve ek otomasyon dakikaları gibi ihtiyaçlar için tercih edilir.
02Projeyi sürükle bırak ile yükleyebilir miyim?
GitHub'ın web arayüzünde Add file > Upload files ile dosya yükleyebilirsiniz. Ancak bu yöntem dosya sayısı ve boyutunda sınırlıdır, düzenli güncelleme için pratik değildir; Git ya da GitHub Desktop kullanmak uzun vadede çok daha kolaydır.
03Yanlışlıkla şifre içeren bir dosya yükledim, ne yapmalıyım?
Önce o şifreyi ya da API anahtarını hemen değiştirin; dosyayı silmek geçmişteki kopyayı yok etmez. Ardından dosyayı .gitignore'a ekleyin, gerekiyorsa geçmişi temizlemek için GitHub'ın hassas veri kaldırma rehberini izleyin.
GitHub'a proje yüklemek; boş bir depo, temiz bir .gitignore ve birkaç Git komutuyla dakikalar içinde tamamlanır, sonrasında her değişiklik güvenle kayıt altında olur. İşletmeniz için sürüm kontrolüyle geliştirilen, size özel bir yazılım ya da web projesi planlıyorsanız Aurora Yazılım'ın özel yazılım çözümlerini inceleyin veya bize yazın.


