Git — Checkout’un Kullanım Senaryoları

K. Murat Baseren
2 min readMar 6, 2024

--

git checkout komutu, Git'te çok yönlü bir işlevsellik sunar ve farklı senaryolarda kullanılabilir. Bir commit'e uygulandığında, bu komut HEAD pointer'ını belirtilen commit'e taşır ve çalışma dizininizi o commit'in durumuna getirir. Bu işlem, belirli bir zaman noktasındaki projenin durumunu incelemek için kullanışlıdır.

Visual Studio ve Visual Studio Code ile Git, Github, Bitbucket ve TFS Eğitimi

git checkout <commit-hash>

<commit-hash>: Geçiş yapmak istediğiniz commit'in benzersiz tanımlayıcısıdır.

Bu komutu çalıştırdığınızda, Git çalışma dizininizi ve indeksinizi (staging area) belirtilen commit'in durumuna geri döndürür.

Bu, HEAD’in artık hiçbir dal’a işaret etmemesi anlamına gelir. Bu duruma “detached HEAD” modu denir.

Detached HEAD Modu

Detached HEAD modunda, HEAD doğrudan bir dala değil, belirli bir commit’e işaret eder.

Bu modda yapacağınız değişiklikler ve commit’ler, yeni bir dal oluşturup bu dal üzerinde çalışmadığınız sürece, herhangi bir dala bağlı olmaz.

Detached HEAD modundan çıkmak için, ya yeni bir dal oluşturabilir (git checkout -b <new-branch>) ya da mevcut bir dala geri dönebilirsiniz (git checkout <branch-name>)

git checkout ile İlgili Dikkat Edilmesi Gerekenler

Veri Kaybı: Detached HEAD modunda yapılan değişiklikler ve commit’ler, yeni bir dal oluşturup bu commit’lere bir referans sağlamadığınız sürece kolayca kaybolabilir. Bu durum, git’in “garbage collection” mekanizması tarafından temizlenebilecek “asılı” commit’lere yol açabilir.

Geçici İnceleme: Bu komut, kodun eski bir durumunu incelemek veya hata ayıklamak için idealdir. Ancak, bu modda kalıcı değişiklikler yapmadan önce bir dal oluşturmanız önerilir.

Dallar Arası Geçiş: git checkout ayrıca mevcut dallar arasında geçiş yapmak için de kullanılır. Bu, projenin farklı özellikler üzerinde çalışırken veya farklı versiyonlarını incelemek istediğinizde yararlıdır.

Yani, git checkout <commit-hash> kullanımı, projenin belirli bir zaman noktasındaki durumunu incelemek için güçlü bir araçtır. Ancak, detached HEAD modunun doğru kullanımı ve olası veri kaybına karşı dikkatli olunması gerektiğini unutmamak önemlidir.

Visual Studio ve Visual Studio Code ile Git, Github, Bitbucket ve TFS Eğitimi

--

--

K. Murat Baseren

Software Architect | .NET Developer | Project Manager | Instructor | Lifetime Learner