Karşılaştırma

Git GUI: grafik Git istemcileri — TortoiseGit, GitKraken, VS Code ve diğerleri

Güncellendi: · Skillaria.Top

Git GUI, geçmişi, branch'leri ve değişiklikleri komut satırı yerine bir pencerede gösteren grafik bir uygulamadır. Başlıca seçenekler: VS Code ve JetBrains IDE'lerindeki yerleşik Git arayüzü, basit işler için GitHub Desktop, Windows için TortoiseGit ve Git Extensions, branch'leri görsel çalıştırmak için GitKraken ve Sourcetree. Hepsi arka planda normal Git ile çalışır.

Git GUI nedir ve gerekli mi

Git GUI, Git ile çalışmak için grafik bir uygulamadır: komutlar yazmak yerine değiştirilmiş dosyaların listesini, commit ağacını ve «Commit», «Push», «Merge» düğmelerini görürsünüz. Perde arkasında neredeyse her Git istemcisi komut satırıyla aynı işlemleri yapar; birçoğu sistemde kurulu git programını doğrudan çağırır. Dolayısıyla GUI ayrı bir versiyon kontrol sistemi değildir, aynı depoyu yönetmenin farklı bir yoludur.

Grafik istemci özellikle üç işte kullanışlıdır: geçmişi ve branch'leri bir grafik olarak görmek, değişikliklerin yalnızca bir kısmını commit etmek (belirli satırları fareyle seçmek, git add -p ile uğraşmaktan çok daha kolaydır) ve üç panelli bir editörde çakışmaları çözmek. Otomasyon, SSH üzerinden sunucularda çalışma ve neyin gerçekte olduğunu anlamak içinse komut satırı vazgeçilmezdir.

Birçok deneyimli geliştiricinin uyguladığı en iyi strateji şudur: komut satırını bilmek ve GUI'yi zaman kazandırdığı yerlerde kullanmak. Yeni başlıyorsanız önce temel komutları öğrenin; böylece her uygulamadaki düğmeler sihir gibi değil, anlaşılır gelir.

Yerleşik git gui ve gitk

Çoğu kişi bilmez, Git'in kendisi zaten bir grafik programla gelir. git gui komutu, commit hazırlamak için basit bir Tcl/Tk penceresi açar: diff'i görme, dosyaları ve parçaları ekleme, commit oluşturma ve push. gitk ise geçmişi bir grafik olarak gösterir.

git gui
gitk --all

Git for Windows ile bu iki program Git Bash ile birlikte kurulur. Linux'ta bazen ayrı bir paket olarak kurmak gerekir (Debian ve Ubuntu'da git-gui ve gitk paketleri). Arayüz eski moda görünür, ama hiçbir şey indirmeniz gerekmez ve Git'in olduğu her yerde çalışır.

VS Code içinde Git

Kodunuzu Visual Studio Code'da yazıyorsanız ayrı bir programa gerek olmayabilir. Source Control paneli (Ctrl+Shift+G) tek tek dosyaları ve satırları stage etmeyi, commit, push ve pull yapmayı, branch değiştirmeyi ve oluşturmayı destekler; değişiklikleri editörde kenar boşluğundaki renkli işaretlerle gösterir. Birleştirme çakışmaları «Accept Current», «Accept Incoming», «Accept Both» düğmeleriyle açılır; yeni sürümlerde üç panelli bir merge editor de vardır.

VS Code, sistemde kurulu Git'i kullanır; bu yüzden önce Git'i kurun, yoksa panel uyarı gösterir. VS Code Git özelliklerini eklentiler genişletir: GitLens satır yazarlarını (blame), dosyanın ayrıntılı geçmişini ve branch karşılaştırmasını ekler; Git Graph commit grafiğini çizer. GitLens'in bazı özellikleri yalnızca ücretli sürümde olabilir; ücretsiz kısmında neler olduğunu kontrol edin.

Benzer şekilde JetBrains IDE'leri (IntelliJ IDEA, PyCharm, WebStorm ve diğerleri) branch grafiği, etkileşimli rebase, shelve ve kullanışlı çakışma çözümü olan gelişmiş bir Git istemcisi içerir. Birçok geliştirici için bu ana Git istemcisidir.

TortoiseGit

TortoiseGit, yalnızca Windows için, açık kaynaklı ve ücretsiz bir istemcidir. Ayrı bir uygulama olarak açılmaz; Windows Gezgini'ne entegre olur: klasöre sağ tıklayın ve bağlam menüsünde Commit, Pull, Push, Show log, Diff seçeneklerini görün. Dosya simgelerinde durum işaretleri çizilir: değiştirildi, eklendi, çakışmada.

TortoiseGit, SVN'den gelen ve TortoiseSVN'e alışmış kullanıcılar için ve sadece dosya almak ve göndermek isteyen programcı olmayanlar (tasarımcılar, teknik yazarlar, test uzmanları) için özellikle uygundur. Çalışması için Windows'ta Git for Windows kurulu olmalıdır. Eksileri: platformlar arası değildir ve geçmiş grafiği özelleşmiş istemcilere göre daha az açıklayıcıdır.

Git Extensions

Git Extensions, Windows için bir başka ücretsiz açık kaynak istemcidir. TortoiseGit'ten farklı olarak, commit grafiği, diff panelleri ve branch listesi olan tam bir pencere sunar; ayrıca Windows Gezgini ve Visual Studio ile entegredir. Birçok işlemi Git komutlarına oldukça yakın gösterir; yerleşik bir konsolu ve alt modül (submodule) desteği vardır.

Git Extensions, Windows'ta tam teşekküllü bir grafiği olan güçlü ve ücretsiz bir istemci istediğinizde ve macOS'a ihtiyacınız olmadığında tercih edilir. Arayüz yoğundur, bu yüzden yeni başlayanların alışması biraz zaman alır.

GitHub Desktop

GitHub Desktop, Windows ve macOS için ücretsiz ve açık kaynaklı bir uygulamadır. Sadelik üzerine kuruludur: değişiklik listesi, commit mesajı alanı, senkronizasyon düğmesi ve branch geçişi. GitHub ile derin entegrasyonu vardır — kendi depolarınızı tek tıkla klonlama, pull request oluşturma, hesapla giriş — ama herhangi başka bir uzak depoyla da çalışır.

GitHub'ın git desktop uygulaması yeni başlayan biri için iyi bir ilk istemcidir ve basit projeler için yeterlidir. Karmaşık işlemler (etkileşimli rebase, reflog ile çalışma, ince birleştirme ayarları) burada sınırlıdır ya da yoktur; bunlar için terminal açmanız gerekir.

GitKraken

GitKraken, çapraz platform (Windows, macOS, Linux) ticari bir istemcidir ve en görsel commit grafiklerinden birine sahiptir. Bir branch'i sürükleyip bırakarak merge ya da rebase yapabilirsiniz; yerleşik bir çakışma editörü, Git Flow desteği, popüler Git barındırma servisleri ve görev takipçileriyle entegrasyon vardır, son işlemi Undo düğmesiyle geri alabilirsiniz.

Sınırlı bir ücretsiz sürümü ve ücretli abonelikleri vardır; her paketteki özellikler değişebildiğinden, örneğin özel depolarla çalışma koşullarını seçmeden önce resmi sitede kontrol edin. GitKraken karmaşık geçmişi görselleştirmesi nedeniyle sevilir; eksileri, sistem kaynaklarına daha fazla ihtiyaç duyması ve ticari kullanım için ücretli olmasıdır.

Sourcetree, Fork, Sublime Merge ve terminal istemcileri

Sourcetree, Atlassian'ın Windows ve macOS için ücretsiz istemcisidir; geçmiş grafiği, Git Flow desteği, etkileşimli rebase ve stash sunar. Bitbucket ile iyi çalışır. Kurulum için bir Atlassian hesabı gerekebilir.

Fork, Windows ve macOS için hızlı ve düzenli ticari bir istemcidir; kullanışlı etkileşimli rebase ve çakışma çözümü vardır. Kullanım koşullarını geliştiricinin sitesinde görün.

Sublime Merge, Sublime Text'in yapımcılarından; Windows, macOS ve Linux için çok hızlı, komut satırı mantığına yakın bir istemcidir: bir düğmenin hangi Git komutunu çalıştırdığını kolayca görebilirsiniz. Ticari lisansla dağıtılır ve deneme kullanımına izin verir.

lazygit ve tig, metin arayüzlü terminal istemcileridir. lazygit satır bazında stage, rebase ve çakışma çözümünü klavye kısayollarıyla yapmanızı sağlar; tig geçmişi incelemek için uygundur. Terminalde yaşayan ve SSH üzerinden sunucularda çalışanların tercihidir.

Git istemcilerinin karşılaştırma tablosu

İstemciPlatformlarDağıtım modeliGüçlü yanıKime uygun
git gui + gitkWindows, macOS, LinuxÜcretsiz, Git ile gelirHiçbir şey kurmak gerekmezCommit ve geçmişe hızlı bakış
VS CodeWindows, macOS, LinuxÜcretsizGit doğrudan editördeVS Code kullanan geliştiriciler
JetBrains IDE'leriWindows, macOS, LinuxIDE'ye bağlıGüçlü rebase ve çakışma araçlarıJetBrains IDE kullanıcıları
TortoiseGitWindowsÜcretsiz, açık kaynakGezgin entegrasyonuSVN'den geçenler, programcı olmayanlar
Git ExtensionsWindowsÜcretsiz, açık kaynakTam grafik ve çok sayıda özellikWindows'ta deneyimli kullanıcılar
GitHub DesktopWindows, macOSÜcretsiz, açık kaynakSadelik, GitHub entegrasyonuYeni başlayanlar, basit projeler
GitKrakenWindows, macOS, LinuxTicari, ücretsiz sürümü varGörsel grafik, sürükle-bırakKarmaşık geçmişi olan ekipler
SourcetreeWindows, macOSÜcretsizGit Flow, Bitbucket entegrasyonuAtlassian ekosistemi kullanıcıları
Sublime MergeWindows, macOS, LinuxTicariHız, komutların şeffaflığıHızı önemseyenler
lazygitWindows, macOS, LinuxÜcretsiz, açık kaynakTerminalde çalışmaTerminal ve SSH severler

Git için program nasıl seçilir

  • Zaten VS Code ya da bir JetBrains IDE kullanıyorsanız — yerleşik Git ile başlayın. Ayrı bir uygulama yalnızca bir şey eksik kaldığında gerekir.
  • Maksimum sadelik istiyorsanız — GitHub Desktop.
  • Windows ve Gezgin alışkanlığınız varsa — TortoiseGit; tam bir grafik istiyorsanız Git Extensions.
  • Çok branch'li karmaşık bir geçmiş, farklı işletim sistemlerinde ekip çalışması — GitKraken, Sublime Merge ya da Fork; ticari kullanım için lisans koşullarını kontrol edin.
  • Terminalde yaşıyorsanız — lazygit ya da tig.

Birçok istemciyi aynı anda kurabilirsiniz: hepsi aynı depoyla çalışır ve birbirini bozmaz, çünkü tüm bilgi .git klasöründe tutulur. Gerçek bir projede iki üç seçeneği deneyin ve bulduğunuz şeyi en hızlı bulduğunuz programı tutun.

Grafik istemcilerin tuzakları

  • Farklı Git sürümleri. Bazı uygulamalar kendi içinde bir Git ile gelir ve sürümü sistemdekinden farklı olabilir. GUI ile terminal farklı davranıyorsa, istemcinin ayarlarında hangi Git'i kullandığını kontrol edin.
  • Gizli işlemler. «Sync» düğmesi, merge ya da rebase ile pull ve ardından push anlamına gelebilir. Önemli bir branch'te basmadan önce tam olarak ne yaptığını öğrenin.
  • Tek tıkla force push. GUI'de uzak branch'in geçmişini yeniden yazmak çok kolaydır. Kontrollü olanı (git push --force-with-lease gibi) tercih edin ve ana branch'leri sunucuda koruyun.
  • Ad ve e-posta. İstemciler bunları Git yapılandırmasından alır. git config --global user.name ve user.email değerlerini kontrol edin; yoksa GUI'den yapılan commit'ler yanlış yazarla kaydedilir.
  • Kimlik doğrulama. GUI, token'ları çoğu zaman sistemdeki Git'ten ayrı saklar. Push terminalde çalışıp uygulamada çalışmıyorsa (ya da tersi), sorun neredeyse her zaman kimlik bilgilerindedir.

GUI ile komut satırını birbirine bağlamak

En faydalı beceri, istemcinin yaptığını terminalde kontrol edebilmektir. Anlaşılmayan bir işlemden sonra terminalde git status ve git log --oneline --graph --all -n 20 çalıştırın: arayüzün yorumu olmadan branch'lerin gerçek durumunu görürsünüz. Bir şey ters giderse git reflog, düğmeye basmadan önce HEAD'in nerede olduğunu gösterir ve git reset ya da git switch ile geri dönebilirsiniz.

Birçok istemci çalıştırdığı Git komutlarının günlüğünü gösterir — bunu açın. Kullanışlı arayüzden vazgeçmeden komutları öğrenmenin en iyi yolu budur.

Kısaca

Git GUI geçmişi incelemeyi, parça parça commit yapmayı ve çakışmaları çözmeyi kolaylaştırır, ama komutları anlamanın yerini tutmaz. Çoğu geliştirici için VS Code ya da IDE'deki yerleşik Git yeterlidir; yeni başlayanlar GitHub Desktop'tan başlayabilir, Windows kullanıcıları TortoiseGit ya da Git Extensions'ı, karmaşık geçmişi görsel olarak yönetmek isteyenler ise GitKraken, Sourcetree ya da Sublime Merge'ü deneyebilir. Git kurulumunu, yapılandırmayı ve terminalde rahat çalışmayı Git kursunda uygulamalı olarak anlatıyoruz.

Sık sorulan sorular

Yalnızca grafik bir istemciyle Git kullanabilir miyim?

Günlük işler için evet, ama er ya da geç bir komutla çözmesi daha kolay bir durumla karşılaşırsınız; örneğin reflog ile geri dönmek. Temel komutları her hâlükârda bilmek gerekir.

Bir GUI istemcisi kurulu olsa da Git'i ayrıca kurmam gerekir mi?

VS Code, TortoiseGit ve Git Extensions için kurulu bir Git gerekir. GitHub Desktop gibi bazı uygulamalar Git'i kendi içinde taşır, ama terminal için yine de sistemdeki Git işinize yarar.

Linux için hangi Git istemcisi var?

Linux'ta yerleşik git gui ve gitk, VS Code, JetBrains IDE'leri, GitKraken, Sublime Merge ve terminal tabanlı lazygit ile tig çalışır.

Aynı depoyu birden çok istemcide açmak güvenli mi?

Evet, hepsi aynı .git klasörüyle çalışır. Yalnızca işlemleri aynı anda başlatmayın; aksi halde istemcilerden biri index.lock kilitli hatası alır.

Bu konuyu videoyla öğrenin

Bu konu “Sıfırdan Güvenilir Geliştiriciye Git” kursunda uygulamalı olarak ayrıntılı işleniyor.

Kursa git