Versiyon Kontrolü ve Git’in Temel Komutları

Yazar: Sefa Sarıkaya

Versiyon Kontrolü ve Git’in Temel Komutları

Bir proje klasöründe aynı dosyanın farklı düzenlemeleri yan yana dururken hangi hâlin son kayıt olduğunu bulmak zorlaşabilir. Sürüm kontrolü, dosyalardaki değişiklikleri zaman içinde kaydederek önceki sürümlere dönme ve farklı kişilerle birlikte çalışma olanağı sağlar. Bu yaklaşım, bir dosyanın yalnızca mevcut görünümüne değil, değişiklik geçmişine de bakmayı mümkün kılar.

Git deposunda dosyadan geçmişe

  • Depo var mı? git init mevcut klasörde boş bir depo oluşturur; ilk commit için dosyalar ayrıca hazırlanıp kaydedilir.
  • Dosya izleniyor mu? Git’in henüz izlemediği dosyalar commit geçmişinde yer almaz.
  • Değişiklik hangi durumda? git status, çalışma ağacı ile hazırlama alanı ve son commit arasındaki farkları, ayrıca izlenmeyen dosyaları gösterir.

Bir deponun klonu, dosyaların yanı sıra proje geçmişini de yerel kopyaya taşır. git status çalışma klasörü ile son commit arasındaki değişiklikleri ve hazırlama alanında bekleyen içerikleri ayrı ayrı gösterir; böylece dosyanın izlenip izlenmediği ve hangi aşamada olduğu görülebilir.

Commit’e girecek içeriğin hazırlanması

Dosyanın çalışma klasöründe düzenlenmesi tek başına yeni bir commit oluşturmaz. git add, dosyanın komut çalıştırıldığı andaki içeriğini hazırlama alanına alır; ardından dosyada yeni değişiklik yapılırsa bu içerik için git add yeniden çalıştırılır. git commit, hazırlanan içeriklerden bir anlık görüntü oluşturup mevcut dalın ucuna yeni bir kayıt ekler.

git diff henüz hazırlanmadı olan değişiklikleri, git diff --staged ise bir sonraki commit’e girecek hazırlanmış içeriği gösterir. Tek dosyadaki değişikliklerin yalnız seçili parçalarını kaydetmek için git add -p kullanılır; komut parçaları tek tek seçmeye imkân verir.

Dal açmak ve değişiklikleri birleştirmek

Yeni bir özellik üzerinde çalışırken ana geliştirme çizgisinden ayrılan bir dal kullanılabilir. İş tamamlandığında git merge, başka bir daldaki değişiklikleri mevcut dala entegre eder; aynı dosyanın çakışan kısımları karar gerektirebilir.

İki dalın ortak atası varsa ve mevcut dal diğerinin atasıysa işaretçi ileri taşınarak birleştirme yapılabilir. main ve master adları özel bir dal türü belirtmez; ikisi de commit’lere işaret eden dal adlarıdır.

Versiyon Kontrolü ve Git’in Temel Komutları - Dal açmak ve değişiklikleri birleştirmek
Versiyon Kontrolü ve Git’in Temel Komutları - Dal açmak ve değişiklikleri birleştirmek

Uzak depo komutlarının işlevi

Uzak depo, ekip üyelerinin erişebildiği proje kopyasıdır. git clone depoyu yeni klasöre kopyalar ve origin adlı uzak depo ayarını kurar. Ekip çalışmasında uzak masaüstüne bağlanma gibi ayrı bir ihtiyaç da doğabilir; bu kullanım için AnyDesk Nedir Nasıl Kullanılır? yazısına bakılabilir.

KomutİşlemMevcut dala etkisi
git fetchUzak commit ve referansları indirirTek başına entegre etmez
git pullUzak değişikliği alırMevcut dala entegre eder
git pushYerel commit’leri gönderirUzak depoda paylaşır

git pull işlemi ayrı adımlarla yürütüldüğünde önce git fetch ile uzak referanslar alınır, ardından git merge ile seçilen dal mevcut dala katılır. Bu ayrım, indirilen değişiklikleri birleştirme kararını ayrı vermek isteyenler için kullanışlıdır.

Bir kayıt zincirini okurken

Uzak izleme dalı, uzak depodaki bir dalın yerel görünümüdür; pull request ise bir daldaki değişiklikleri başka bir dala birleştirme önerisini gözden geçirmeye açar. Tasarım dosyalarının sürüm geçmişiyle ilişkisini incelemek için tasarım projelerindeki dosya değişiklikleri sayfası da ilgili bir kaynaktır.

Çalışma klasöründeki henüz kaydedilmemiş düzenlemeleri ayırt etmek için git status çıktısına bakılır. Kayıtlı adımlar arasında belirli bir değişikliği ararken git log listesindeki commit’ler incelenir; liste varsayılan olarak en yeni kayıttan başlar.

Git ile çalışmanın artıları ve sınırları

Artıları

  • Dosya değişiklikleri geçmişte izlenebilir ve önceki sürümlere dönülebilir.
  • Dallar, özellik çalışmalarını ana geliştirme çizgisinden ayrı tutar.
  • Uzak depo komutları değişiklikleri ekip içinde paylaşmayı sağlar.

Eksileri

  • Commit’e yalnızca hazırlanan içerikler girer; seçim ayrıca gözden geçirilmelidir.
  • Aynı dosyanın çakışan bölümleri birleştirme sırasında karar gerektirebilir.

Dikkat edilecekler

Ayrı bir yerel klon, depo geçmişinin de kopyasını içerdiğinden ekip üyelerinin çalıştığı klasörün niteliğini anlamak önem taşır. Klonu paylaşım için hazırlayan kişi, klasörün hangi uzak depoya bağlı olduğunu ve gönderilecek kayıtların nereye ulaşacağını kontrol etmelidir. Uzak depo bilgisi karıştığında ekip arkadaşları beklenen kayıtları bulamayabilir; bu durum özellikle birden fazla depoyla çalışan projelerde görünür olur. Uzak depoya gönderimden önce yerel kopyadaki uzak depo ayarını ve paylaşılacak dalı birlikte kontrol et. Bu kontrol, ekipteki kişilerin aynı proje geçmişine erişip erişmediğini ve gönderimin doğru çalışma çizgisine yönelip yönelmediğini netleştirir.

Advertisements
Etiketler: #Git #versiyon kontrolü #Git komutları #yazılım geliştirme

Sıkça Sorulan Sorular

Git, depodaki commit ve dallarla çalışmayı sağlayan sürüm kontrol yazılımıdır; GitHub ise Git depolarını barındıran ve ekip çalışması özellikleri sunan platformdur. Git’i yerel depoda kullanmak için GitHub hesabı gerekmez.

.gitignore, Git’in henüz izlemediği dosyaları eşleşen kurallara göre yok saymasını sağlar. Dosya daha önce izlemeye alınmışsa, bu kurallar takibi kendiliğinden durdurmaz. Bu nedenle kural eklemek, geçmişte izlenen dosyanın takibini tek başına kaldırmaz; kuralın etkisi henüz izlenmeyen dosyalara yöneliktir.

Git kullanıcı adı, commit’leri bir kimlikle ilişkilendiren addır ve GitHub kullanıcı adıyla aynı olmak zorunda değildir. Commit’te görünen ad bu kimlik bilgisini gösterirken, GitHub kullanıcı adı platformdaki hesabı belirtir. İki adın farklı olması commit’in kimlikle ilişkilendirilmesine engel olmaz; her biri kendi bağlamında kullanılır.

Bu içerik yapay zekâ tarafından hazırlanmış ve yayımlanmıştır; insan editör incelemesi veya onayı iddiası taşımaz.

Sefa Sarıkaya

İçerik Üreticisi

YouTube kanalımızda donanım sorunları, oyun hataları ve yazılım çözümleri üreterek topluluğa pratik rehberler sağlıyorum.

Abone Ol
Advertisements

Blogda Ara

Sefa Sarıkaya

Sefa Sarıkaya

İçerik Üreticisi

Donanım sorunları, oyun incelemeleri ve pratik yazılım çözümleri üreterek topluluğa rehberlik ediyorum.

İş Birliği & İletişim

Projelerim

TeknoCepte Uygulaması

Teknoloji gündemini ve incelemeleri cebinizden takip edin.

Google Play'den İndir

Kategoriler