🎓 Bounlu tarafından hazırlandı
39.886 görüntülenme

Sürüm Kontrol Sistemleri (Git) Nedir?

Yazılım geliştirme projelerinde, kodun zaman içindeki değişimlerini takip etmek, farklı sürümleri yönetmek ve birden fazla geliştiricinin aynı proje üzerinde eş zamanlı çalışmasını sağlamak için sürüm kontrol sistemleri (VCS) kullanılır. Git, bu alanda en popüler ve yaygın olarak kullanılan dağıtık bir sürüm kontrol sistemidir.

Kısa cevap

Sürüm Kontrol Sistemleri (Git), yazılım projelerindeki kod değişikliklerini kaydeden ve geçmiş sürümlere kolayca dönülmesini sağlayan bir sistemdir. Git, dağıtık yapısı sayesinde geliştiricilerin çevrimdışı çalışmasına ve değişiklikleri senkronize etmesine olanak tanır.

01

Adım adım çözümlü örnekler

Git ile bir projeye yeni başlayan bir geliştirici hangi temel adımları izlemelidir?

1. **Git Kurulumu:** Bilgisayarınıza Git'i kurun.
2. **Depo Oluşturma/Klonlama:** Yeni bir proje için `git init` ile depo başlatın veya mevcut bir depoyu `git clone <url>` ile klonlayın.
3. **Dosya Ekleme:** Değişiklikleri takip etmek istediğiniz dosyaları `git add <dosya_adı>` ile hazırlık alanına ekleyin.
4. **Değişiklikleri Kaydetme:** Hazırlanan değişiklikleri `git commit -m "Mesajınız"` ile yerel depoya kaydedin.
5. **Uzak Depo ile Senkronizasyon:** Değişiklikleri uzak depoya (`git push`) göndermeden veya oradan çekmeden (`git pull`) önce yerel değişikliklerinizi gözden geçirin.

Farklı geliştiricilerin aynı projede çalışırken Git ile çakışmaları (conflict) nasıl yönetebilir?

1. **Güncel Depoyu Çekme:** Çalışmaya başlamadan önce uzak depodaki en son değişiklikleri `git pull` komutu ile yerel deponuza çekin.
2. **Çakışma Durumu:** Eğer sizin yaptığınız değişiklikler ile çektiğiniz değişiklikler aynı dosyanın aynı satırlarında ise Git otomatik olarak birleştirme işlemini durdurur ve çakışma (conflict) olduğunu belirtir.
3. **Çakışmaları Çözme:** Çakışan dosyaları açın. Git, çakışan kısımları özel işaretlerle (`<<<<<<<`, `=======`, `>>>>>>>`) belirtir. Bu işaretleri silerek ve kodunuzu istediğiniz gibi düzenleyerek çakışmayı manuel olarak çözün.
4. **Çözülen Dosyaları Ekleme ve Commit:** Çakışmayı çözdüğünüz dosyaları `git add <dosya_adı>` ile hazırlık alanına ekleyin ve ardından `git commit` komutu ile birleştirme işlemini tamamlayın.

Bir geliştirici, yaptığı son commit'i geri almak isterse ne yapmalıdır?

1. **Yerel Commit'i Geri Alma:** Eğer commit henüz uzak depoya gönderilmediyse, `git reset --hard HEAD~1` komutu ile son commit'i geri alabilirsiniz. Bu komut, son commit'i hem commit geçmişinden siler hem de yapılan değişiklikleri çalışma dizininden kaldırır.
2. **Sadece Commit Mesajını Değiştirme:** Eğer commit'i geri almak yerine sadece commit mesajını değiştirmek istiyorsanız `git commit --amend` komutunu kullanabilirsiniz.
3. **Uzak Depoya Gönderilmiş Commit'i Geri Alma (Dikkatli Olun!):** Eğer commit uzak depoya gönderilmişse, `git revert HEAD` komutu ile geri almak istediğiniz commit'in tam tersini yapan yeni bir commit oluşturabilirsiniz. Bu, geçmişi değiştirmek yerine yeni bir değişiklik ekleyerek güvenli bir geri alma yöntemidir. `git push` ile bu değişikliği uzak depoya göndermeniz gerekir.
02

Bilgi kartları

03

Mini test

S1.Aşağıdakilerden hangisi Git'in temel amacıdır?

Doğru cevap: B. Git'in temel amacı, kod değişikliklerini kaydetmek, geçmiş sürümlere erişim sağlamak ve birden fazla geliştiricinin aynı proje üzerinde verimli bir şekilde çalışmasını mümkün kılmaktır.

S2.Bir geliştirici, uzak depodaki en son değişiklikleri yerel deposuna çekmek için hangi komutu kullanır?

Doğru cevap: C. `git pull` komutu, uzak depodaki (genellikle `origin` olarak adlandırılır) en son değişiklikleri yerel depoya indirir ve mevcut çalışma dalı ile birleştirir.

S3.`git commit -m "Mesajınız"` komutu ne yapar?

Doğru cevap: C. Bu komut, hazırlık alanındaki (staging area) tüm değişiklikleri yerel Git deposuna kalıcı olarak kaydeder. `-m` parametresi, commit için bir mesaj belirtilmesini sağlar, bu mesaj değişikliğin ne hakkında olduğunu açıklar.
📄Bu konuyu PDF çalışma kağıdı olarak indirKonu özeti + 10 soru + cevap anahtarı — sınıfta paylaş, yazdır.
04

Sık yapılan hatalar

Git sadece tek bir kullanıcı tarafından kullanılabilen bir sistemdir.Doğrusu: Git dağıtık bir sistemdir ve birden fazla geliştiricinin aynı proje üzerinde eş zamanlı olarak çalışmasına olanak tanır.

`git pull` komutu sadece dosyaları indirir, birleştirme yapmaz.Doğrusu: `git pull` komutu, uzak depodaki değişiklikleri hem indirir hem de yerel çalışma dalı ile otomatik olarak birleştirmeye çalışır.

Commit'ler geri alınamaz, yapılan her değişiklik kalıcıdır.Doğrusu: Git'te `git reset` veya `git revert` gibi komutlarla commit'leri geri almak veya değişiklikleri iptal etmek mümkündür (ancak uzak depoya gönderilmiş commit'leri geri alırken dikkatli olunmalıdır).

05

Sıkça sorulan sorular

Git'in merkezi sürüm kontrol sistemlerinden farkı nedir?

Git dağıtık bir sistemdir, yani her geliştiricinin yerel bilgisayarında projenin tam bir kopyası bulunur. Bu, çevrimdışı çalışmayı, daha hızlı işlem yapmayı ve merkezi bir sunucu kesintisi durumunda bile projeye erişimi mümkün kılar. Merkezi sistemlerde ise tüm kodlar tek bir sunucuda tutulur.

Branch (dal) nedir ve neden kullanılır?

Branch, projenin ana kod tabanından (genellikle `main` veya `master` dalı) ayrı olarak geliştirme yapmanızı sağlayan bir çalışma hattıdır. Farklı özellikler geliştirmek, hataları ayıklamak veya denemeler yapmak için kullanılır. Ana projeyi etkilemeden bağımsız olarak çalışmayı sağlar ve daha sonra ana dala birleştirilebilir (merge).

Merge (birleştirme) işlemi nedir?

Merge işlemi, bir branch'te yapılan değişikliklerin başka bir branch'e (genellikle ana dala) aktarılmasıdır. Bu, farklı geliştiricilerin yaptığı çalışmaları tek bir yerde toplamak ve projenin güncel tutulmasını sağlamak için kullanılır.

İlgili konular