Visual Studio ile Git ve GitHub kullanımı oldukça kolaydır. GitHub veya Azure DevOps gibi seçtiğiniz Git sağlayıcısıyla uzaktan çalışabilirsiniz. Veya hiçbir sağlayıcı olmadan local olarak çalışabilirsiniz. Bu konuda Visual Studio program ara yüzü ile bize kolaylıklar sağlamaktadır.
Visual Studio GitHub Hesabı Ekleme
GitHub’ı Visual Studio ile kullanmak için öncelikli olarak bir Git hesabı oluşturmalısınız. Bunun için resmi GitHub sayfasınız ziyaret edebilir ve kullanıcı hesabı oluşturmaya yönergelerini kolayca tamamlayabilirsiniz.
Şimdi ise oluşturduğumuz GitHub hesabımızı Visual Studio’ya konfigüre edelim.
Not: Bir Microsoft hesabı, iş hesabı veya okul hesabıyla Visual Studio’da oturum açmamış olsanız bile, GitHub hesabınızı da istediğiniz zaman Visual Studio’ya ekleyebilirsiniz.
- File > Account Settings (Dosya > Hesap Ayarları) seçeneğine giderek Account Settings (Hesap Ayarları) iletişim kutusunu açın.
- Bir hesap eklemek için All Accounts (Tüm Hesaplar) alt menüsünden + Add (Ekle’yi) seçin ve ardından GitHub‘ı seçin.
- GitHub kimlik bilgilerinizle oturum açabileceğiniz tarayıcıya yönlendirileceksiniz. Oturum açtıktan sonra tarayıcıda bir başarı penceresi görürsünüz ve Visual Studio’ya geri dönebilirsiniz.
- GitHub hesabınız artık All Accounts (Tüm Hesaplar= alt menüsünde bulunacaktır.
Not: GitHub Hesabınızı ekleme işlemini profil kartınızı kullanarak da gerçekleştirebilirsiniz.
Visual Studio ile GitHub Reposunu Klonlama (Clone GitHub Repo)
- Git menüsünden Clone Repository (Repoyu Kopyala’yı) seçin.
- Ardından klonlamak istediğiniz GitHub repo adresini Clone Repo (repoyu klonla) penceresindeki Repository location alanına yapıştırınız ve Clone butonuna tıklayınız belirttiğiniz adres deki repo klonlama işlemi başlaycaktır.
Bir diğer yolda GitHub’dan Aç penceresinde GitHub hesap bilgilerinizi doğrulayabilir veya ekleyebilirsiniz. Bunu yapmak için açılır menüden Oturum aç’ı seçin.
Oturum açma işlemi başarılı bir şekilde gerçekleştikten sonra GitHub’ınız üzerinden istediğiniz repoyu seçip klonlayabilirsiniz.
Not: Dilerseniz aynı adımları takip ederek Azure DevOps reposunu da klonlayabilirsiniz.
Visual Studio ile GitHub Reposu Oluşturma (Create GitHub Repo)
- Visual Studio’yu açın ve ardından dilediğiniz uygulama türünde yeni proje oluşturun.
- Git menüsünden Create Git Repository (Git Reposu Oluştur’u) seçin.
- Create a Git repository (Git reposu oluştur) menüsünden, Push to a new remote (Yeni bir uzak konuma gönder) bölümünün altında GitHub’ı seçin ve gerekli bilgileri doludurunuz.
Visual Studio ile GitHub Branch Oluşturma (Create Branch)
- Branch oluşturmak için önceden oluşturulmuş veya klonlanmış bir reponuzun açık olduğundan emin olun.
- Git menüsünden New Branch seçin.
- Create a new branch iletişim kutusunda bir branch adı girin.
- Based on bölümünde yeni branch’ı, mevcut bir local branch mi yoksa remote branch mi dayandıracağınızı seçmek için açılır listeyi kullanın.
- Varsayılan olarak açık olan Checkout branch onay kutusu otomatik olarak yeni oluşturulan branch geçer. Mevcut branch’da kalmak istiyorsanız bu seçeneği değiştirin.
Visual Studio ile GitHub Commit
Herhangi bir Git iş akışının temel kısmı, dosyaları değiştirmek ve değişiklikleri bu dosyalara uygulamaktır (commit).
Git, siz çalışırken reponuzdaki dosya değişikliklerini izler (track) ve reponuzdaki dosyaları üç kategoriye ayırır. Bu değişiklikler, komut satırında git status komutu ile de görebiliriz.
Unmodified files: Dosyalarınızın son işleminizden (commit) sonra değişmediğini belirtir.
Modified files: Bu dosyaların son işleminizden (commit) bu yana değişiklikler içerdiğini bildirir. Ancak bunları bir sonraki işlem (commit) yapmadığınızı gösterir.
Staged files: Bu dosyalar, bir sonraki işleme (commit) eklenecek değişikliklere sahiptir.
Siz işinizi yaparken, Visual Studio projenizdeki dosya değişikliklerini Git Changes (Git Değişiklikleri) penceresinin Changes (Değişiklikler) bölümünde izler.
Hazır olduğunuzda değişiklikleri stage almak için, istediğiniz her dosyadaki + (artı) düğmesini seçin veya bir dosyaya sağ tıklayıp ardından Stage’i seçin.
Bir işlemi gerçekleştirdiğinizde, Visual Studio bir Staged Changes bölümü oluşturur. Yalnızca Staged Changes bölümündeki değişiklikler, Commit Staged‘i seçerek bir sonraki işleme (commit) eklenir.
Bu eylem için şu komut ile de gerçekleştirebilirsiniz: git commit -m “Mesajınız”
Not: Bir dosyayı stage’lemek, aslında o dosyayı bir sonraki “commit”‘e hazırlamak demektir. Aynı dosyada olsa bile, sadece stage’lediğiniz değişiklikler bir sonraki commint’inizde uzaktaki git sunucusuna gönderilecektir. Örneğin; A ve B adında 2 adet geliştirmeniz var. A geliştirmenizi tamamladınız fakat B geliştirmesi henüz tamamlanamadı. Commit yapmak istiyorsunuz, bu nedenle A geliştirmesine ait kısımları stage’leyip commit edebilirsiniz. B değişiklikleri hala sizin çalışma klasörünüzde olduğu gibi kalır.
Değişiklikler ( – ) işaretine tıklayarak da geri alabilirsiniz veya şu kodu kullanabilirsiniz: git reset <file_path>
Stage Changes bölümünü hazırlamadan da dosyalarınızı işleyebilirsiniz (commit) bunun için Commit All butonunu kullanabilirsiniz veya şu kodu kullanabilirsiniz: git commit -a
Visual Studio aynı zamanda Commit All ve Push and Commit All and Sync kısayollarını kullanarak tek tıklamayla işlemeyi (commit) kolaylaştırır. Changes ve Staged changes bölümlerinde herhangi bir dosyayı çift tıklattığınızda, dosyanın değiştirilmemiş sürümüyle satır satır karşılaştırma görebilirsiniz.
Bir Commit’e çift tıklattığınızda, Visual Studio ayrıntılarını ayrı bir araç penceresinde açar. Buradan commit’i geri alabilir, commit’i sıfırlayabilir, commit mesajını değiştirebilir veya commit’e bir etiket oluşturabilirsiniz. İşlemde değiştirilen bir dosyayı tıklattığınızda, Visual Studio, işlemin ve üst öğesinin yan yana Diff görünümünü açar.
Visual Studio ile GitHub Push
Push işlemi, local bir projeyi tek bir tıklamayla doğrudan remote bir hesaba (GitHub’a) gönderme (yayınlama olarak da bilinir) yeteneğidir. Basit bir git akışının son işlemidir.
Burada remote, genellikle origin/main (veya origin/master) olarak anılır. Burada “origin” remote için varsayılan addır.
Visual Studio’da bir dosyayı remote nasıl göndereceğiniz (push) aşağıda açıklanmıştır.
- Önceden oluşturulmuş veya klonlanmış bir repoda bulunan üzerinde çalışmak için açık bir dosyanız olduğundan emin olun.
- Dosyada bir değişiklik yapın, kaydedin, Git Changes sekmesini seçin ve ardından commit’i gerçekleştirin.
- Git Changes penceresinde, incoming (gelen) ve outgoing (giden) commit sayısını içeren bağlantı metnine dikkat edin. Aşağıdaki örnekte, bağlantı metni 1 outgoing / 0 incoming şeklindedir.
“outgoing“, henüz remote gönderilmemiş commitlerin sayısını temsil ederken, “incomming”, remote’dan fetched (getirilen) ancak henüz pulled (çekilmemiş) commitleri temsil eder.
- Remote göndermek için için Push düğmesi’ni veya Git menüsünden Push’u seçin.
Visual Studio ile GitHub Fetch, Pull, Push ve Sync
Visual Studio, download (indirme) (fetch (getirme) ve pull (çekme)) ve upload (yükleme) (push (itme)) işlemleri aracılığıyla local branch’ınızı remote branch’ınızla senkronize tutmanıza yardımcı olur.
Git menüsünü kullanarak Visual Studio’da fetch (getirebilir), pull (çekebilir) ve sync (eşitleyebilirsiniz).
Bu işlemleri gerçekleştirmek için Git Changes penceresindeki düğme kontrollerini de kullanabilirsiniz.
Fetch
Fetch ile Local değişikliklerinize dahil etmeniz gereken herhangi bir remote commit olup olmadığını kontrol ederiz. Remote branch’deki değişiklikleri indirmek için git fetch komutunu kullanıyoruz. git fetch komutu ile remote branch’deki değişiklikleri indirdikten sonra ise git log komutunu kullanarak bu remote branch’deki değişiklikler ile ilgili bilgileri görebiliriz.
Pull
Değişiklikleri inceledikten sonra bunları local branch’inize entegre etmeye karar verdiğimizde ise git pull komutunu kullanırız. Her zaman push (itmeden) önce pull (çekin). İlk çektiğinizde, yukarı akış birleştirme çakışmalarını önleyebilirsiniz.
Push
Commit oluşturduğunuzda, doğal olarak kodunuzun local anlık görüntülerini kaydetmiş olursunuz. Commitleri yedek olarak saklayabileceğiniz veya kodunuzu başkalarıyla paylaşabileceğiniz GitHub’a göndermek için Push’u kullanın.
Ancak, daha önce de belirtildiği gibi, her zaman push (itmeden) önce pull (çekin).
Sync
Sırayla hem pull (çekmek) hem de push (itmek) için bu işlemi kullanın.