Temeller

Git Bash nedir ve Windows'ta nasıl kullanılır?

Güncellendi: · Skillaria.Top

Git Bash, Git for Windows ile birlikte kurulan ve tanıdık bir Unix ortamı sunan bir Windows terminalidir: bash kabuğu, ls, cd, cat, grep, ssh komutları ve Git'in kendisi. Git komutlarının ve dokümantasyondaki talimatların Windows'ta da Linux ve macOS'taki gibi çalışmasını sağlar.

Git Bash nedir?

Git Bash, Git for Windows ile birlikte kurulan ve bash kabuğuna sahip bir terminal penceresi açan bir Windows uygulamasıdır. İçinde Git'in kendisi ve bir dizi standart Unix aracı çalışır: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl ve diğerleri.

Teknik olarak MSYS2 ortamının bir port'udur: programlar Windows için derlenmiştir ama Linux'taki gibi davranır. Varsayılan terminal penceresi MinTTY emülatörüdür. Bu bir sanal makine ya da tam bir Linux değildir — onun için WSL vardır. Git Bash daha hafiftir: anında açılır ve doğrudan Windows dosyalarıyla çalışır.

Aramalarda bazen «git bush» olarak yazıldığını görürsünüz — kastedilen aynı şeydir. Bash, Bourne Again SHell'in kısaltmasıdır; çalılarla (bush) bir ilgisi yoktur.

cmd ve PowerShell varken Git Bash neden gerekli?

Git hem PowerShell'de hem de klasik komut isteminde gayet iyi çalışır. Ancak Git Bash'in, özellikle yeni başlayanlar için pratik avantajları vardır.

  • Tüm sistemlerde aynı komutlar. Git dokümantasyonu, forum cevapları, GitHub talimatları ve kurslar komutları bash için yazar. Git Bash'te bunlar değiştirmeden çalışır: rm -rf build, cat ~/.ssh/id_ed25519.pub, export VAR=value.
  • Hazır SSH araçları. ssh-keygen, ssh-agent, ssh-add zaten yüklüdür — GitHub için anahtar bir dakikada oluşturulur.
  • Komut isteminde Git ipuçları. Git Bash geçerli branch'i doğrudan giriş satırında gösterir, örneğin (main), merge sırasında ise (main|MERGING).
  • Otomatik tamamlama. Tab tuşu Git komutlarını, branch ve dosya adlarını tamamlar.
  • Gelecek için beceri. Sunucular, Docker container'ları ve CI Linux üzerinde çalışır. Git Bash'te bash'e alıştıktan sonra sunucuda kendinizi evinizde gibi hissedersiniz.

Git Bash, Git CMD, PowerShell: farkları neler?

Git for Windows kurulduktan sonra Başlat menüsünde birkaç öğe belirir ve bu kafa karıştırabilir.

AraçNedirNe zaman kullanılır
Git BashUnix araçları ve Git içeren bash kabuğuGit ile temel çalışma, internetteki talimatları izlemek
Git CMDPATH'inde Git bulunan klasik Windows komut istemi (cmd.exe)cmd'ye alışkınsanız ve yalnızca git komutlarına ihtiyacınız varsa
Git GUITcl/Tk tabanlı basit grafik istemciCommit'i görsel olarak hazırlamak, nadiren kullanılır
PowerShell / cmdStandart Windows terminalleriKurulumda PATH için «from the command line and also from 3rd-party software» seçildiyse Git çalışır

Git CMD ayrı bir program değil, ortamı ayarlanmış sıradan bir cmd'dir. Git komutları aynıdır, ancak ls, cat ve grep çalışmaz: bunların yerine dir, type ve findstr kullanılır. «cmd git» aramaları genellikle tam olarak şunu sorar: git standart komut isteminden nasıl çalıştırılır? Cevap: özel bir şey gerekmez, Git PATH'teyse doğrudan git status çalıştırın.

Git Bash nasıl açılır?

Başlat menüsünden

«Git Bash» yazın ve uygulamayı başlatın. Terminal kullanıcının ana klasöründe açılır: /c/Users/Ad; bash'te bu klasör ~ ile gösterilir.

Sağ tık menüsüyle istenen klasörde

En pratik yol: Dosya Gezgini'nde proje klasörünün içinde boş bir yere sağ tıklayın ve «Open Git Bash here» seçeneğini seçin. Windows 11'de bu öğe «Diğer seçenekleri göster» altında gizlidir (veya Shift + sağ tık).

VS Code terminalinde

Terminali açın (Ctrl + `), «+» işaretinin yanındaki oka tıklayın ve Git Bash'i seçin. Varsayılan olarak açılması için «Terminal: Select Default Profile» komutunu çalıştırıp Git Bash'i seçin.

Windows Terminal'de

Git for Windows, Git Bash profilini Windows Terminal'e kendisi ekleyebilir (kurulum sihirbazındaki bir seçenek). Profil yoksa C:\Program Files\Git\bin\bash.exe -i -l komutuyla yeni bir profil oluşturun.

Yollar ve dosyalar: Windows'tan temel fark

Git Bash'te yollar Unix tarzında yazılır. C: sürücüsü /c olur, ters eğik çizgiler düz eğik çizgiye dönüşür.

WindowsGit Bash
C:\Users\Anna\projects/c/Users/Anna/projects
D:\work/d/work
%USERPROFILE%~ veya $HOME

Yolda boşluk varsa tırnak içine alın: cd "/c/Users/Anna/My Projects". Geçerli klasörü Dosya Gezgini'nde açmak için explorer ., VS Code'da açmak için code . komutunu kullanabilirsiniz.

Yeni başlayanlar için temel Git Bash komutları

Gezinme ve dosyalar

pwd                 # neredeyim
ls -la              # gizliler dahil dosya listesi (.git, .gitignore)
cd projects/site    # klasöre geç
cd ..               # bir üst seviyeye çık
mkdir new-app       # klasör oluştur
touch index.html    # boş dosya oluştur
cat README.md       # içeriği göster
rm file.txt         # dosyayı sil
rm -r old-folder    # klasörü içeriğiyle birlikte sil
clear               # ekranı temizle

Doğrudan Git Bash'te ilk repository

$ mkdir my-first-repo && cd my-first-repo
$ git init
Initialized empty Git repository in C:/Users/Anna/my-first-repo/.git/
$ echo "Merhaba, Git" > hello.txt
$ git add hello.txt
$ git commit -m "hello.txt ekle"
$ git log --oneline

git init'ten sonra komut istemi değişir: parantez içinde branch adı belirir. Bu, bir repository'nin içinde olduğunuzu anlamanın hızlı bir yoludur.

Faydalı ipuçları

  • Tab — komut, branch ve dosya adlarını otomatik tamamlar. Seçenekleri görmek için iki kez basın.
  • Yukarı ok — önceki komut; history — tüm geçmiş; Ctrl + R — geçmişte arama.
  • Kopyala/yapıştır — MinTTY'de fareyle seçmek hemen kopyalar, yapıştırma Shift + Insert veya sağ tıkla yapılır. Terminalde Ctrl + C kopyalamaz, çalışan komutu durdurur.
  • q — sayfalı görünümden çıkış (git log, git diff less içinde açılır).
  • Esc, ardından :q! ve Enter — commit mesajı için Vim açıldıysa ondan çıkış.

Git CLI: komut satırını neden öğrenmeli?

Git CLI, Git'in komut satırı arayüzüdür, yani git ... komutlarının kendisi. Grafik istemciler geçmişi incelemek için kullanışlıdır ama sınırları vardır: her işlem mevcut değildir ve bir hata olduğunda düğme ne olduğunu açıklamaz. Komut satırı tam kontrol ve ayrıntılı mesajlar sunar.

Bir başka argüman: iş görüşmesinde ya da yeni bir ekipte sizden bir commit'i nasıl geri aldığınızı veya bir conflict'i nasıl çözdüğünüzü göstermeniz istenir ve herkesin GUI'si farklıdır. Komutlar ise her yerde aynıdır. İyi bir strateji: CLI'da çalışmak, GUI'yi veya IDE'nin yerleşik araçlarını diff ve geçmişi görüntülemek için kullanmak.

Git Bash'i kendinize göre ayarlamak

~/.bashrc içinde alias'lar

Git Bash açılırken ~/.bash_profile ve ~/.bashrc dosyalarını okur. Kısaltmaları buraya ekleyin:

alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'

Değişikliklerin yeniden başlatmadan geçerli olması için source ~/.bashrc çalıştırın. Açılışta .bashrc bulunduğu ama .bash_profile olmadığı yönünde bir uyarı çıkarsa, Git Bash .bash_profile'ı kendisi oluşturur — bu normaldir.

Git'in kendi alias'ları

Alias'ları Git içinde de saklayabilirsiniz; o zaman her terminalde çalışırlar:

git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"

Artık git st ve git lg hem Git Bash'te hem PowerShell'de çalışır.

Görünüm

Yazı tipi, boyut, renkler ve saydamlık pencere başlığına sağ tıklayıp → Options ile ayarlanır. Türkçe karakterler için Text bölümünde UTF-8 kodlamasının seçili olduğundan emin olun.

Git Bash'te sık karşılaşılan sorunlar

git log'da Türkçe karakterler yerine anlamsız simgeler

Genellikle Options → Text'te kodlamayı UTF-8 yapmak ve ~/.bashrc'ye export LANG=tr_TR.UTF-8 satırını eklemek işe yarar. git status'ta ASCII dışı karakter içeren dosya adları için git config --global core.quotepath false çalıştırın — aksi halde \304\261 gibi kaçış dizileri olarak görünürler.

Etkileşimli programlar donuyor

Bazı konsol programları (örneğin argümansız çalıştırılan Python yorumlayıcısı veya node) MinTTY'de garip davranır. Bunları winpty ile çalıştırın: winpty python, ya da Git Bash'i Windows Terminal içinde kullanın.

Yollar tuhaf bir şeye dönüşüyor

MSYS, Unix yoluna benzeyen argümanları otomatik olarak Windows yollarına çevirir. Bu bazen sorun çıkarır, örneğin docker run'a /app verirken. Çözüm: eğik çizgiyi ikiye katlamak (//app) veya komut için MSYS_NO_PATHCONV=1 ayarlamak.

push sırasında «Permission denied (publickey)»

SSH anahtarı oluşturulmamış ya da GitHub'a eklenmemiş. Git Bash'te ssh-keygen -t ed25519 -C "you@example.com" komutuyla anahtar oluşturun, ~/.ssh/id_ed25519.pub içeriğini GitHub ayarlarına ekleyin ve ssh -T git@github.com ile kontrol edin.

Git Bash mi, WSL mi?

WSL, kendi dosya sistemi ve paketleri olan, Windows içinde gerçek bir Linux'tur. Linux için geliştirme yapıyorsanız gereklidir: Docker çalıştırmak, derlemek, sunucu yığını kullanmak. Git Bash daha basit ve hafiftir; Git ile çalışmak için tamamen yeterlidir. Önemli olan karıştırmamaktır: WSL içinde clone edilen bir repository'yi WSL'deki Git ile, C: sürücüsündeki bir repository'yi ise Git for Windows ile yönetmek daha iyidir.

Özet

Git Bash, Git for Windows ile gelen, bash ve Unix araçları içeren bir terminaldir. Windows'u Git dokümantasyonu ve talimatlarıyla uyumlu hale getirir, hazır SSH sunar ve komut isteminde branch'i gösterir. Git CMD ise Unix komutları olmadan, sıradan komut istemindeki aynı Git'tir. Windows'ta öğrenme ve günlük çalışma için Git Bash'i seçin — Git kursunda pratik derslerde ana terminal olarak kullanılıyor.

Sık sorulan sorular

Git Bash ücretsiz mi?

Evet, Git Bash, Git for Windows'un bir parçasıdır ve açık kaynak lisansıyla ücretsiz dağıtılır.

Git Bash, Git'ten ayrı kurulabilir mi?

Hayır, Git Bash yalnızca Git for Windows ile birlikte kurulur. Git zaten kuruluysa Git Bash Başlat menüsünde vardır.

macOS ve Linux'ta Git Bash var mı?

Ayrı bir program yoktur ve gerek de yoktur: macOS ve Linux'ta yerleşik terminal zaten bash veya zsh ve Unix araçlarıyla çalışır.

Git Bash ana klasörü ve ayarları nerede saklar?

Ana klasör C:\Users\Ad'dır, bash'te ~ olarak erişilir. .bashrc, .bash_profile, .gitconfig ve .ssh klasörü de oradadır.

Git Bash'te bat ve exe dosyaları çalıştırılabilir mi?

Evet, Windows programları adı veya yoluyla çalıştırılır, örneğin ./build.bat veya notepad file.txt.

Bu konuyu videoyla öğrenin

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

Kursa git