Git
Chapters ▾ 2nd Edition

A1.1 Ek bölüm A: Diğer Ortamlarda Git - Görsel Arayüzler

Kitabın tamamını okursanız Git’i komut satırında nasıl kullanacağınız hakkında çok şey öğrenmiş olursunuz. Yerel dosyalarla çalışabilir, reponuzu ağ üzerinden diğerlerine bağlayabilir ve başkalarıyla etkili bir şekilde çalışabilirsiniz. Ancak hikaye burada bitmiyor; Git genellikle daha büyük bir ekosistemin parçası olarak kullanılır ve terminal her zaman onunla çalışmanın en iyi yolu değildir. Şimdi Git’in yararlı olabileceği diğer ortam türlerine ve diğer uygulamaların (sizinki dahil) Git ile birlikte nasıl çalıştığına göz atacağız.

Görsel Arayüzler

Git’in doğal ortamı terminaldir. Yeni özellikler önce orada ortaya çıkar ve Git’in bize bahşettiği tam güç yalnızca komut satırında tamamen elinizin altındadır. Ancak düz metin her zaman en iyi seçenek değildir; bazen ihtiyacınız olan şey görsel bir temsildir ve bazı kullanıcılar işaretleyip tıklayabilecekleri bir arayüzde çok daha rahat hissederler.

Farklı arayüzlerin farklı iş akışları için özel olarak tasarlandığını unutmamak gerekir. Bazı istemciler yalnızca belirli bir çalışma şeklini desteklemek için, yazarın etkili bulduğu belirli bir Git işlevselliğinin özenle seçilmiş bir alt kümesini sunar. Bu açıdan bakıldığında, bu araçların hiçbiri diğerlerinden "daha iyi" olarak adlandırılamaz, sadece hedeflenen amaca daha uygun olabilirler. Ayrıca, bu görsel istemcilerin yapabileceği hiçbir şeyin komut satırı istemcisi tarafından yapılamayacağını unutmayın; komut satırı hala repolarınızla çalışırken en fazla güç ve kontrolü sağlayacağınız yerdir.

gitk ve git-gui

Git’i yüklediğinizde, gitk ve git-gui gibi görsel araçları da birlikte gelir.

gitk görsel bir tarih görüntüleyicisidir. Onu git log ve git grep üzerine güçlü bir GUI kabuğu gibi düşünün. Bu, geçmişte olan bir şeyi bulmaya çalıştığınızda veya projenizin geçmişini görselleştirmeye çalıştığınızda kullanacağınız araçtır.

Gitk’yi en kolay şekilde komut satırından çağırabilirsiniz. Sadece bir Git reposuna cd yapın ve şunu yazın:

$ gitk [git log options]

Gitk, birçok komut satırı seçeneğini kabul eder, bunların çoğu temel git log işlemine iletilir. Muhtemelen en faydalı olanlardan biri, gitk’ye herhangi bir referanstan ulaşılabilen işlemleri göstermesini söyleyen --all bayrağıdır. Gitk’nin arayüzü şöyle görünür:

`gitk` geçmiş görüntüleyici.
Görsel 152. gitk geçmiş görüntüleyici.

Üst kısımda, git log --graph çıktısına benzeyen bir şey bulunur; her nokta bir katkıyı temsil eder, çizgiler üst nesne ilişkilerini temsil eder ve referanslar renkli kutular olarak gösterilir. Sarı nokta HEAD’i, kırmızı nokta ise henüz bir katkıya dönüşmemiş değişiklikleri temsil eder. Alt kısımda, seçili katkı görünümü bulunur; solda yorumlar ve yama, sağda ise özet görünümü. Arada, geçmişi aramak için kullanılan kontrol ögelerinin bir koleksiyonu bulunur.

git-gui ise temel olarak bir katkı oluşturma aracıdır. Bu da komut satırından çağrılması en kolay olanlardandır:

$ git gui

Ve şuna benzer:

`git-gui` katkı aracı.
Görsel 153. git-gui katkı aracı.

Solda, dizin bulunur; izleme alınmamış (unstaged) değişiklikler üstte, izleme alınmış (staged) değişiklikler altta yer alır. Dosyaları iki durum arasında taşımak için simgelerine tıklamanız yeterlidir veya bir dosyayı görüntülemek için adına tıklayabilirsiniz.

Sağ üstte, şu anda seçili dosyanın değişikliklerini gösteren diff görünümü bulunur. Burayaa sağ tıklayarak tekil parçaları (veya tekil satırları) izleme alabilirsiniz.

Sağ altta, mesaj ve eylem alanı bulunur. Mesajınızı metin kutusuna yazın ve git commit işlemine benzer bir şeyler yapmak için ``Commit`` düğmesine tıklayın. Ayrıca ``Amend`` radyo düğmesini seçerek son katkıyı değiştirebilirsiniz; bu işlem izlem alanını son katkı içeriğiyle günceller. Sonra, sadece bazı değişiklikleri izleme alabilir veya çıkarabilir, katkı mesajını değiştirebilir ve ``Commit`` düğmesine yeniden tıklayarak eski katkıyı yeni bir katkıyla değiştirebilirsiniz.

gitk ve git-gui görev odaklı araç örnekleridir. Her biri belirli bir amaç için (sırasıyla; geçmişi görüntüleme ve katkı oluşturma) özelleştirilmiştir ve bu görev için gerekli olmayan özellikleri yok sayarlar.

macOS ve Windows için GitHub

GitHub’ın oluşturduğu iş akışı odaklı 2 Git istemcisi bulunmaktadır: biri Windows için, diğeri macOS için. Bu istemciler Git’in tüm işlevselliğini ortaya çıkarmak yerine, iş akışına yönelik üretilmiş araçların iyi bir örneğidir; birlikte iyi çalışan ve sık kullanılan bir dizi özelliğe odaklanırlar. Aşağı yukarı şöyle görünürler:

macOS için GitHub.
Görsel 154. macOS için GitHub.
Windows için GitHub.
Görsel 155. Windows için GitHub.

Her ikisi de görünüş ve işlev bakımından çok benzer olacak şekilde tasarlanmıştır, bu yüzden bu bölümde onları tek bir şeymiş gibi ele alacağız. Kendi kılavuzlerı olduğu için, bu araçlarla ilgili detaylı bir inceleme yapmayacağız; ancak çoğu zaman zamanınızı geçireceğiniz için, "changes" (değişiklikler) görünümünde kısa bir tur gereklidir.

  • Solda istemcinin izlediği repoların listesi bulunur: Buranın üstündeki ``+`` simgesine tıklayarak (yerel olarak veya kopyalama yoluyla) bir repo ekleyebilirsiniz.

  • Ortada bir katkı giriş alanı bulunur: Bu alan bir katkı mesajı girmenizi ve hangi dosyaların dahil edileceğini seçmenizi sağlar. (Windows’ta katkı geçmişi doğrudan bu alanın altında gösterilir, macOS’ta ise ayrı bir sekmede bulunur.)

  • Sağda bir fark görünümü bulunur: Çalışma dizininizde neyin değiştiğini veya seçilen katkıya hangi değişikliklerin dahil edildiğini gösterir.

  • Son dikkat edilecek şey, en üst sağda bulunan ``Senkronize Et`` düğmesidir: Ağ üzerindeki etkileşiminizin temel yolud budur.

Not

Bu araçları kullanmak için bir GitHub hesabına ihtiyacınız yoktur. GitHub’ın hizmetini ve önerilen iş akışını vurgulamak için tasarlanmış olsalar da, isteğe bağlı olarak herhangi bir repo ile çalışacak ve herhangi bir Git sunucusunda ağ işlemleri gerçekleştirecektir.

Kurulum

Windows için GitHub https://windows.github.com adresinden, macOS için GitHub ise https://mac.github.com adresinden indirilebilir. Uygulamalar ilk çalıştırıldığında, size adım adım ilk kez Git kurulumunu (adınızı ve e-posta adresinizi yapılandırma gibi) gösterir ve (kimlik bilgisi önbelleği ve CRLF davranışı gibi) birçok yaygın yapılandırma seçeneği için akıllı varsayılanlar sağlar.

Her ikisi de "daima güncel"dir: uygulamalar açıkken güncellemeler arka planda indirilir ve yüklenir. Yardımsever şekilde Git’in paketlenmiş bir sürümünü içerdiğinden, muhtemelen manuel olarak güncelleme konusunda endişelenmenize gerek olmayacaktır. Windows’ta istemci PowerShell’i Posh-git ile başlatmak için bir kısayol içerir, buna bölümün ilerleyen kısımlarında daha fazla değineceğiz.

Sonraki adım, araca çalışması için bazı repolar vermektir. İstemci size GitHub’da erişiminiz olan repoların bir listesini gösterir ve bunları tek adımda kopyalayabilir. Zaten yerel bir repoya sahipseniz, sadece dizini Finder veya Windows Explorer’dan GitHub istemci penceresine sürükleyip bırakmanız yeterlidir. Böylece bu repo sol taraftaki repolar listesine dahil edilecektir.

Önerilen İş Akışı

GitHub istemcisi kurulduktan ve yapılandırıldıktan sonra, birçok yaygın Git görevini gerçekleştirmek için GitHub istemcisini kullanabilirsiniz. Bu aracın amaçlanan iş akışı bazen "GitHub Akışı" olarak adlandırılır. Bu konuyu GitHub Akışı bölümünde daha detaylı bir şekilde ele alıyoruz, ancak genel olarak (a) bir dalda katkıda bulunacaksınız ve (b) oldukça düzenli bir şekilde uzak bir repo ile senkronize olacaksınız.

Dal yönetimi, iki aracın farklılaştığı alanlardan biridir. macOS’ta, pencerenin üstünde yeni bir dal oluşturmak için bir düğme bulunur:

`macOS’ta "Create Branch" (dal oluştur) düğmesi.
Görsel 156. macOS’ta "Create Branch" (dal oluştur) düğmesi.

Windows’ta bu, yeni dalın adını dal değiştirme aracında yazarak yapılır:

Windows’ta "Create Branch" (dal oluştur) düğmesi.
Görsel 157. Windows’ta "Create Branch" (dal oluştur) düğmesi.

Yeni dalınız oluşturulduktan sonra, yeni katkılar işlemek oldukça basittir. Çalışma dizininizde bazı değişiklikler yapın ve GitHub istemci penceresine geçin: hangi dosyaların değiştiğini size gösterecektir. Bir katkı mesajı girin, dahil etmek istediğiniz dosyaları seçin ve "Commit" düğmesine (ctrl-enter veya ⌘-enter) tıklayın.

Ağ üzerinden diğer repolarla etkileşimde bulunmanın temel yolu "Senkronizasyon" (Sync) özelliğidir. Git dahili olarak itme, çekme, birleştirme ve yeniden temelleme için ayrı işlemlere sahiptir; ancak GitHub istemcileri bunların hepsini çok adımlı tek bir özellik halinde birleştirir. "Sync" düğmesine tıkladığınızda ne olduğunu aşağıda görebilirsiniz:

  1. git pull --rebase. Bu işlem, bir birleşme çakışması nedeniyle başarısız olursa, git pull --no-rebase komutuna geri döner.

  2. git push.

Bu, bu tarzda çalışırken en yaygın kullanılan ağ komutları dizisidir, dolayısıyla bunları tek bir komuta sıkıştırmak çok zaman kazandırır.

Özet

Bu araçlar, tasarlandıkları iş akışı için çok uygundur. Geliştiriciler ve geliştirici olmayanlar bir projede dakikalar içinde işbirliği yapabilirler ve bu tür bir iş akışı için birçok en iyi uygulama örneği bu aracın içine gömülüdür. Ancak, iş akışınız farklıysa veya ağ işlemlerinin nasıl ve ne zaman yapılacağı konusunda daha fazla kontrol istiyorsanız, başka bir istemciyi veya doğrudan komut satırını kullanmanızı öneririz.

Diğer Arayüzler

Bir dizi başka görsel Git istemcisi vardır; bunlar, özelleştirilmiş ve tek amaca yönelik araçlardan başlayıp, Git’in yapabileceği her şeyi ortaya çıkarmaya çalışan uygulamalara kadar, geniş bir yelpazede çalışmaktadır. Resmi Git web sitesinde en popüler istemcilerin seçilmiş bir listesi bulunmaktadır: https://git-scm.com/downloads/guis. Daha kapsamlı bir liste ise Git wiki sitesinde mevcuttur: https://git.wiki.kernel.org/index.php/Interfaces,_frontends,_and_tools#Graphical_Interfaces.

scroll-to-top