Visual Studio'da Git depolarını yönetme

Git Deposu penceresi, Git deponuzu yönetmenize ve ekibinizin projeleriyle güncel kalmanıza yardımcı olan tam ekran bir Git deneyimi sağlar. Örneğin, işlemeleri sıfırlamanız, geri döndürmeniz veya tek tek seçmeniz ya da yalnızca işleme geçmişinizi temizlemeniz gerekebilir. Git Deposu penceresi, dallarınızı görselleştirmek ve yönetmek için de harika bir yerdir.

Git ile Visual Studio ile sürüm denetimi kolaydır. Ayrıca, GitHub veya Azure DevOps gibi tercih ettiğiniz Git sağlayıcısıyla uzaktan çalışabilirsiniz. Ya da hiçbir sağlayıcı olmadan yerel olarak çalışabilirsiniz.

Git Deposu penceresini açma

Git Deposu penceresini açmak için Git deposunu görüntüle'yi>seçin (veya Ctrl+0, Ctrl+R tuşlarına basın) veya Ctrl Q tuşuna+basın ve Özellikler'in altında Git deposunu arayın.

Son işlemeyi değiştirme (düzeltme)

Son işlemenin güncelleştirilmesi Git'te değişiklik olarak adlandırılır ve bu yaygın bir kullanım örneğidir. Bazen işleme iletinizi güncelleştirmeniz veya son dakika değişikliği eklemeniz gerekebilir.

Aşağıdaki komutu kullanarak komut satırındaki bir işlemeyi değiştirebilirsiniz:

git commit --amend

Git Deposu penceresi, en son işleme iletinizi güncelleştirmenizi kolaylaştırır. Son işlemeye çift tıklayarak işleme ayrıntılarını açın ve işleme iletisinin yanındaki Düzenle seçeneğini belirleyin.

İşleme iletisini düzenlemenin ekran görüntüsü.

İşleme iletinizi düzenlemeyi bitirdiğinizde Düzelt'i seçin.

Düzelt'i seçerek düzenlenen iletiyi kaydetme işleminin ekran görüntüsü.

Son işlemenize kod değişiklikleri eklemeniz gerekiyorsa, bunu Git Değişiklikleri penceresinde yapabilirsiniz. Düzelt onay kutusunu seçin ve değişikliklerinizi işleyin.

Git Değişiklikleri penceresini kullanarak kod değişikliklerini değiştirme işleminin ekran görüntüsü.

En son ileti dışındaki işleme iletilerini değiştirme de dahil olmak üzere düzeltme hakkında daha fazla bilgi edinmek için Git web sitesindeki Git Araçları - Geçmişi Yeniden Yazma bölümüne bakın.

birleştirme işlemeleri (squash)

Git, bir dizi işlemeyi birleştirmek için işlemeleri tek bir işlemeye sıkıştırma seçeneği sağlar. Bu seçenek, sık sık işlemeler yaparsanız ve uzak bir depoya göndermeden önce temizlemek istediğiniz işlemelerin uzun bir listesiyle sonuçlanırsa yararlı olabilir.

Aşağıdaki komutu kullanarak komut satırındaki iki işlemeyi sıkıştırabilirsiniz:

git rebase -i HEAD~2

Ardından, olarak güncelleştirin picksquash, kaydedin ve işleme iletisini güncelleştirin.

Seçimi squash'a güncelleştirmenin ekran görüntüsü.

Visual Studio'da işlemeleri birleştirmek için, birleştirmek istediğiniz birden çok işlemeyi seçmek için Ctrl tuşunu kullanın. Ardından sağ tıklayın ve Sıkıştırma İşlemeleri'ni seçin. Visual Studio işleme iletilerinizi otomatik olarak birleştirir, ancak bazen güncelleştirilmiş bir ileti sağlamak daha iyidir. İşleme iletinizi gözden geçirip güncelleştirdikten sonra Sıkıştır düğmesini seçin.

Visual Studio'da işlemeleri sıkıştırma işleminin ekran görüntüsü.

Sıkıştırma hakkında daha fazla bilgi edinmek için Git web sitesindeki Git Araçları - Geçmişi Yeniden Yazma bölümüne bakın.

Dalları birleştirme ve yeniden temel oluşturma

Farklı özellikler üzerinde çalışmak için Git dalları kullanıyorsanız, bir noktada diğer dallara sunulan güncelleştirmeleri eklemeniz gerekir. Bu durum, özellik dalınız üzerinde çalışmaya devam ederken gerçekleşebilir. Özellik dalınız üzerinde çalışmayı bitirdiğinizde ve değişikliklerinizi farklı bir dala ekleyerek saklamanız gerektiğinde de bu durum oluşabilir. Git'te, dalları birleştirerek veya yeniden birleştirerek bu güncelleştirmeleri ekleyebilirsiniz.

Not

Aşağıdaki yönergelerde bir özellik dalı için örnek ad olarak New_Feature kullanılır. Kendi dalınızın adıyla değiştirin.

Ana dalı komut satırındaki özellik dalınızla birleştirmek için aşağıdaki komutları kullanın:

git checkout New_Feature
git merge main

Visual Studio'da da aynı işlemi yapmak için, dal listesinde çift tıklayarak özellik dalını gözden geçirin. Ardından main'a sağ tıklayın ve 'main' öğesini 'New_Feature' ile birleştir'i seçin.

Visual Studio'da dalları birleştirme işleminin ekran görüntüsü.

Ana dalı komut satırındaki özellik dalınıza yeniden temel almak için aşağıdaki komutları kullanın:

git checkout New_Feature
git rebase main

Visual Studio'da da aynı işlemi yapmak için, dal listesinde çift tıklayarak özellik dalını gözden geçirin. Ardından main'a sağ tıklayın ve 'New_Feature' öğesini 'main' üzerine yeniden temelle'yi seçin.

Visual Studio'da dalları yeniden boyutlandırma işleminin ekran görüntüsü.

Genel olarak birleştirme, yeniden bağlama ve dallanma hakkında daha fazla bilgi edinmek için Git web sitesindeki Git Dallanma bölümüne bakın.

İşlemeleri kopyalama (vişne seçimi)

Kiraz seçimi seçeneğini kullanarak işlemeleri bir daldan diğerine kopyalayın. Birleştirme veya yeniden temel alma işleminden farklı olarak, tek tek seçim, daldaki tüm değişiklikler yerine yalnızca seçtiğiniz işlemelerdeki değişiklikleri getirir. Kiraz toplama, bu yaygın sorunları çözmenin harika bir yoludur:

  • Yanlışlıkla yanlış dalda işleme. Değişiklikleri doğru dalda tek tek seçin ve özgün dalı önceki işlemeye sıfırlayın.
  • Özellik dalında yapılan bir dizi işlemeyi çekerek bunları ana dalınızla daha erken birleştirirsiniz.
  • Dalınızı yeniden bağlamadan ana daldan belirli işlemeleri taşıma.

Komut satırını kullanarak bir işlemedeki değişiklikleri geçerli dalınıza kopyalamak için aşağıdaki komutu kullanın:

git cherry-pick 7599e530

Visual Studio'da da aynısını yapmak için, tek tıklamayla bir işlemeyi seçerek tek bir işleme seçmek istediğiniz dalın önizlemesini yapın. Ardından hedeflenen işlemeye sağ tıklayın ve Kiraz Seç'i seçin.

Visual Studio'da kiraz toplamanın ekran görüntüsü.

İşlem tamamlandığında Visual Studio bir başarı iletisi gösterir. Seçtiğiniz işleme Giden bölümünde görünür.

Kiraz toplama işlemeleri hakkında daha fazla bilgi edinmek için, vişne seçme komutunun Git web sayfasına bakın.

Değişiklikleri geri al

Paylaşılan dallara gönderilen işlemelerde yapılan değişiklikleri geri almak için geri döndür komutunu kullanın. Geri döndür komutu, önceki işlemede yapılan değişiklikleri geri alan yeni bir işleme oluşturur. Revert komutu depo geçmişini yeniden yazmaz ve bu sayede başkalarıyla çalışırken kullanımı güvenli hale getirir.

Komut satırını kullanarak bir işlemede yapılan değişiklikleri geri döndürmek için aşağıdaki komutları kullanın. Örnek kimliği, dalınızdaki gerçek bir işlemenin kimliğiyle değiştirin.

git revert 53333305
git commit

Önceki örnekte komutlar işleme 53333305 yapılan değişiklikleri geri alır ve dalda yeni bir işleme oluşturur. Özgün işleme hala Git geçmişindedir. Visual Studio'da da aynı işlemi yapmak için, geri döndürmek istediğiniz işlemeye sağ tıklayın ve ardından Geri Döndür'e tıklayın. Eyleminizi onayladıktan ve işlem tamamlandıktan sonra, Visual Studio bir başarı iletisi görüntüler ve Giden bölümünde yeni bir işleme görüntülenir.

Visual Studio'da geri dönme işleminin ekran görüntüsü.

Geri alınan işlemenin değişikliklerini geri aldırdığını onaylamak için yeni işlemeyi seçin.

Geri döndürme işlemini onaylama işleminin ekran görüntüsü.

Değişiklikleri geri alma hakkında daha fazla bilgi edinmek için geri döndür komutunun Git web sayfasına bakın.

Dalı önceki bir duruma sıfırlama

Yerel deponuzdaki bir dalı önceki işlemenin içeriğine geri getirmek için reset komutunu kullanın. Bu eylem, dalınızı sıfırladığınız işlemeden bu yana gerçekleşen tüm değişiklikleri atar.

Uyarı

Diğer kişilerin çalışmalarını silebileceğiniz için paylaşılan dalları sıfırlamayın. Bunun yerine geri döndür komutunu kullanın.

Komut satırını kullanarak bir dalı önceki bir duruma sıfırlamak için aşağıdaki komutu kullanın. Örnek kimliği, dalınızdaki gerçek bir işlemenin kimliğiyle değiştirin.

git reset --hard 53333305

--hard Komutun bölümü Git'e dosyaları önceki işleme durumuna sıfırlamasını ve aşamalı değişiklikleri at etmesini söyler. Visual Studio'da da aynı işlemi yapmak için, dalınızı sıfırlamak istediğiniz işlemeye sağ tıklayın ve ardından Değişiklikleri Sil'i (--hard) Sıfırla'yı> seçin.

Visual Studio'da dal sıfırlamayı gösteren ekran görüntüsü.

Dalları sıfırlama hakkında daha fazla bilgi edinmek için, sıfırlama komutu için Git web sayfasına bakın.