Windows, macOS ve Linux'ta Git Nasıl Kurulur ve Yapılandırılır?

Git'i kurmak kolaydır. Ancak doğru commit kimlikleri oluşturan, satır sonlarını öngörülebilir biçimde yöneten, kullanışlı bir düzenleyici sunan ve güvenli kimlik doğrulama sağlayan bir kurulum için biraz daha dikkat gerekir.

Bu rehber; Windows, macOS ve Linux üzerinde Git kurulumunu adım adım ele alır, ardından temiz bir ilk yapılandırma oluşturur. Yalnızca hangi komutları çalıştırmanız gerektiğini değil, her ayarın neyi kontrol ettiğini, Git'in bu ayarları nerede sakladığını ve sık karşılaşılan sorunları nasıl teşhis edebileceğinizi de açıklar.

Rehberin sonunda çalışan bir Git komut satırı ortamına ve ilk gerçek deponuz için hazır bir yapılandırmaya sahip olacaksınız.

Neleri Yapılandıracaksınız?

Yeni başlayanlar için eksiksiz bir kurulum, yalnızca git komutunun çalıştığını doğrulamaktan daha fazlasını içerir. Temel adımlar şunlardır:

  • İşletim sisteminize uygun bir yöntemle Git'i kurmak.

  • Terminalinizin hangi Git çalıştırılabilir dosyasını ve sürümünü kullandığını doğrulamak.

  • Gelecekteki commitlere yazılacak ad ve e-posta adresini yapılandırmak.

  • Yeni depolar için varsayılan dal adını belirlemek.

  • Git'in commit mesajları ve diğer işlemler için açacağı düzenleyiciyi seçmek.

  • Yapılandırma kapsamlarını ve öncelik sırasını anlamak.

  • Bilinçli bir satır sonu politikası belirlemek.

  • HTTPS kimlik doğrulaması için güvenli bir kimlik bilgisi yardımcısı kullanmak.

  • Son yapılandırmayı ve ayarların geldiği dosyaları kontrol etmek.

  • Ortamın doğru çalıştığını doğrulamak için bir test deposu oluşturmak.

Git'i Kurmadan Önce

Herhangi bir şey indirmeden önce Git'in zaten kurulu olup olmadığını kontrol edin:

git --version

Başarılı bir çıktı aşağıdakine benzer:

git version 2.x.x

Tam sürüm numarası; işletim sistemine, paket kaynağına ve güncelleme tarihine göre değişir.

Terminal git komutunun tanınmadığını veya bulunamadığını bildiriyorsa Git ya kurulu değildir ya da çalıştırılabilir dosyanın bulunduğu dizin sistemin PATH değişkeninde yer almıyordur.

Git kuruluysa hangi çalıştırılabilir dosyanın kullanıldığını da belirleyin.

Windows PowerShell'de:

Get-Command git

Komut İstemi'nde:

where git

macOS veya Linux'ta:

which git

Bu kontrol, bilgisayarda birden fazla Git kurulumu bulunduğunda özellikle yararlıdır. Örneğin işletim sisteminin kurduğu bir Git sürümü ile paket yöneticisi üzerinden kurulan başka bir sürüm aynı anda bulunabilir.

Kurulum Yöntemini Bilinçli Seçin

Git'i kurmanın yaygın üç yolu vardır:

  1. Resmî veya bakımı sürdürülen kurulum paketi: Windows'ta yaygın olarak kullanılır.

  2. İşletim sistemi paket yöneticisi: Linux'ta yaygındır ve macOS'ta da kullanışlıdır.

  3. Kaynak koddan derleme: Belirli bir sürüme veya özel derleme seçeneklerine ihtiyaç duyan ileri düzey kullanıcılar için uygundur.

Çoğu geliştirici için bakımı sürdürülen kurulum paketi veya işletim sisteminin standart paket yöneticisi en iyi seçenektir. Kaynak koddan derlemek ek bakım yükü getirir ve ilk kurulum için çoğu zaman gerekli değildir.

Windows'ta Git Kurulumu

Windows için standart dağıtım Git for Windows'tur. Git komut satırı araçlarının yanı sıra Windows üzerinde Unix benzeri bir kabuk ortamı sağlayan Git Bash'i de içerir.

Git for Windows'u grafiksel kurulum sihirbazıyla veya Windows Paket Yöneticisi üzerinden kurabilirsiniz.

Yöntem 1: Kurulum Sihirbazıyla Git for Windows Kurulumu

  1. Windows için resmî Git kurulum sayfasını açın.

  2. İşlemci mimarinize uygun kurulum dosyasını seçin; çoğu sistemde bu x64 veya ARM64'tür.

  3. İndirdiğiniz kurulum dosyasını çalıştırın.

  4. Kurulum ekranlarını gözden geçirin ve seçenekleri bilinçli biçimde belirleyin.

  5. Kurulumu tamamlayın ve daha önce açık olan terminalleri yeniden başlatın.

Kurulum aracı zamanla değişebileceği için bazı seçenek adları küçük farklılıklar gösterebilir. Aşağıdaki kararlar en önemli olanlardır.

Bileşenleri Seçme

Varsayılan bileşenler yeni başlayanların çoğu için uygundur. Git Bash özellikle kullanışlıdır; çünkü internetteki birçok Git eğitimi, doğal olarak bu ortamda çalışan kabuk sözdizimini kullanır.

“Git Bash Here” gibi isteğe bağlı sağ tık menüsü seçenekleri kullanışlı olabilir, ancak Git'in çalışması için zorunlu değildir.

Varsayılan Düzenleyiciyi Seçme

Git; commit mesajı, birleştirme mesajı, rebase planı veya etiket açıklaması gerektiğinde zaman zaman bir metin düzenleyici açar.

Kaydetmeyi ve kapatmayı bildiğiniz bir düzenleyici seçin. Visual Studio Code zaten kuruluysa pratik bir tercihtir. Vim güçlü bir araçtır; ancak temel komutlarını bilmeden seçmek, yeni başlayan bir kullanıcının düzenleyicinin içinde sıkışmış gibi hissetmesine neden olabilir.

Bu ayarı daha sonra değiştirebilirsiniz; dolayısıyla kurulum sırasında yaptığınız seçim kalıcı değildir.

Git'i PATH'e Ekleme

Kurulum aracı genellikle git komutunun hangi ortamlarda kullanılabileceğini belirleyen seçenekler sunar.

Tipik bir geliştirme bilgisayarında Git'in yalnızca Git Bash'ten değil; PowerShell, Komut İstemi, IDE terminalleri ve otomasyon araçları gibi diğer komut satırı ortamlarından da çalıştırılmasına izin veren seçeneği tercih edin.

Kısıtlayıcı bir PATH seçeneği, Git'in Git Bash'te çalışmasına rağmen PowerShell veya bir IDE içinde bulunamamasına yol açabilir.

SSH Uygulamasını Seçme

Git for Windows, beraberinde gelen OpenSSH istemcisini veya bilgisayarda önceden kurulu başka bir SSH uygulamasını kullanabilir.

Dahilî OpenSSH seçeneği, öngörülebilir bir ortam sunduğu için yeni kurulumlarda genellikle en kolay tercihtir. Haricî bir SSH istemcisini yalnızca sistem genelinde bilinçli olarak yapılandırılmış bir SSH ortamınız varsa kullanın.

HTTPS Altyapısını Seçme

Kurulum aracı HTTPS aktarımı için bir altyapı seçeneği sunabilir. Varsayılan seçim çoğu durumda uygundur. Özel sertifikaların veya yönetilen Windows güven depolarının kullanıldığı kurumsal ortamlarda, kurumun BT politikası tarafından belirlenmiş özel bir seçenek gerekebilir.

HTTPS hatalarını geçici olarak aşmak için sertifika doğrulamasını kapatmayın. Bunun yerine güvenilir sertifika yapılandırmasını düzeltin.

Satır Sonu Davranışını Seçme

Windows genellikle CRLF satır sonlarını, Linux ve macOS ise LF satır sonlarını kullanır. Git for Windows kurulum sırasında varsayılan bir dönüştürme politikası sunabilir.

Yeni başlayan bir geliştirici için varsayılan seçeneği kabul etmek çoğu zaman yeterlidir. Ancak satır sonları proje düzeyinde ele alınmalıdır. Bu nedenle ekipler zamanla yalnızca kişisel kurulum tercihlerine güvenmek yerine depoya eklenen bir .gitattributes dosyasıyla ortak politika tanımlamalıdır.

Bu konu rehberin ilerleyen bölümlerinde ayrıntılı olarak açıklanacaktır.

Terminal ve Konsol Seçenekleri

Git Bash normalde kendi terminal ortamını kullanır. Bununla birlikte Git komutları Windows Terminal, PowerShell, Komut İstemi ve IDE terminallerinde de çalıştırılabilir.

Yalnızca tek bir terminal kullanmak zorunda değilsiniz. Önemli olan, her ortamda kullanmayı amaçladığınız aynı Git çalıştırılabilir dosyasının bulunmasıdır.

Kimlik Bilgisi Yöneticisi

Kurulum aracı Git Credential Manager seçeneğini sunduğunda, uzak depolara HTTPS üzerinden bağlanan geliştiriciler için bu bileşen genellikle yararlıdır. Kimlik bilgisi yöneticisi; tokenları tekrar tekrar girmenizi veya elle saklamanızı istemek yerine güvenli sistem depolaması ve modern oturum açma yöntemleriyle çalışabilir.

Yöntem 2: winget ile Git Kurulumu

PowerShell veya Komut İstemi'ni açıp şu komutu çalıştırın:

winget install --id Git.Git -e --source winget

Kurulumdan sonra terminali kapatıp yeniden açın ve doğrulama yapın:

git --version
where git

Windows'ta Hangi Terminali Kullanmalısınız?

Git, Windows'taki birçok kabukta çalışır:

  • Git Bash: Unix benzeri komutlar ve internetteki birçok eğitim için kullanışlıdır.

  • PowerShell: Windows yönetimi ve modern geliştirici araçlarıyla güçlü entegrasyon sunar.

  • Komut İstemi: Desteklenir; ancak betik yazma konusunda PowerShell kadar gelişmiş değildir.

  • Windows Terminal: PowerShell, Komut İstemi, Git Bash ve WSL profillerini barındırabilen bir terminal uygulamasıdır.

  • IDE terminali: Visual Studio Code, PhpStorm, IntelliJ IDEA veya benzeri araçların içinde doğrudan çalışırken kullanışlıdır.

Git öğrenmek için önce Bash öğrenmek zorunda değilsiniz. Bildiğiniz terminali kullanın; ancak dosya oluşturma, ortam değişkenleri ve yol yazımı gibi kabuğa özgü komutlara dikkat edin.

macOS'ta Git Kurulumu

macOS birden fazla kurulum yöntemi sunar. En uygun seçenek, Apple'ın sağladığı komut satırı araçlarını mı kullanmak istediğinize yoksa ayrı bir Git sürümünü kurup güncelleyebilen bir paket yöneticisini mi tercih ettiğinize bağlıdır.

Yöntem 1: Xcode Command Line Tools

Şu komutu çalıştırın:

xcode-select --install

macOS istemini izleyin, ardından doğrulayın:

git --version
which git

Xcode Command Line Tools yalnızca Git'i içermez. Geliştirme ortamlarının sıkça ihtiyaç duyduğu derleyicileri ve yardımcı araçları da sağlar.

Yöntem 2: Homebrew

Homebrew zaten kuruluysa şu komutu çalıştırın:

brew install git

Ardından çalıştırılabilir dosyanın yolunu doğrulayın:

git --version
which git

macOS hâlâ farklı bir Git çalıştırılabilir dosyası kullanıyorsa kabuğunuzun PATH değişkenini inceleyin. Apple Silicon ve Intel sistemlerinde paket yöneticisi yolları farklı olabilir.

Homebrew ile yönetilen Git kurulumunu daha sonra güncellemek için:

brew update
brew upgrade git

Yöntem 3: MacPorts

Ortamınız zaten MacPorts kullanıyorsa:

sudo port install git

Yalnızca Git kurmak için birden fazla paket yöneticisi yüklemeyin. Bilgisayarda zaten tercih edilmiş olan paket ekosistemini kullanın.

macOS Neden Birden Fazla Git Gösterebilir?

Bir macOS bilgisayarda Apple tarafından sağlanan Git ile paket yöneticisinin kurduğu Git aynı anda bulunabilir. Bu durum tek başına bir hata değildir; ancak kabuk, PATH içinde eşleşen ilk çalıştırılabilir dosyayı kullanır.

Etkin komutu inceleyin:

which -a git
git --version

Bir IDE terminalden farklı bir Git sürümü gösteriyorsa IDE ayarlarında belirtilen Git çalıştırılabilir dosya yolunu kontrol edin.

Linux'ta Git Kurulumu

Linux'ta dağıtımınızın sunduğu paket yöneticisini kullanın. Böylece sistem güncellemeleri ve bağımlılıklarla öngörülebilir bir entegrasyon sağlarsınız.

Debian ve Ubuntu

sudo apt update
sudo apt install git

Fedora

sudo dnf install git

Arch Linux

sudo pacman -S git

openSUSE

sudo zypper install git

Alpine Linux

sudo apk add git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

FreeBSD

sudo pkg install git

Kurulumdan sonra doğrulayın:

git --version
which git

Dağıtım Paketi mi, En Güncel Ana Sürüm mü?

Bir Linux dağıtımı, Git'in en yeni ana sürümünden daha eski bir sürüm sunabilir. Bu, paketin kullanılamaz olduğu anlamına gelmez. Kararlı dağıtımlar genellikle test edilmiş paket kombinasyonlarına ve uzun vadeli bakıma öncelik verir.

Dağıtım paketini değiştirmeden önce daha yeni sürümde sunulan belirli bir özelliğe gerçekten ihtiyacınız olup olmadığını değerlendirin. Haricî depolar eklemek veya kaynak koddan derlemek ek bakım sorumluluğu doğurur.

Windows'taki Git ile WSL İçindeki Git Arasındaki Fark

Windows Subsystem for Linux, Windows'un yanında çalışan bir Linux ortamıdır. Windows'a kurulan Git ile bir WSL dağıtımının içine kurulan Git, ayrı yapılandırma dosyalarına sahip iki farklı kurulumdur.

WSL içinde Git'i dağıtımın paket yöneticisiyle kurun:

sudo apt update
sudo apt install git

Git for Windows'u daha önce yapılandırmış olsanız bile Git'i WSL içinde ayrıca yapılandırın.

Aradaki ayrımı net tutun:

  • Windows Git, Windows yollarını ve Windows tarafındaki yapılandırmayı kullanır.

  • WSL Git, Linux yollarını ve Linux tarafındaki yapılandırmayı kullanır.

  • Bir IDE, projenin yerel olarak mı yoksa WSL entegrasyonu üzerinden mi açıldığına bağlı olarak bunlardan birini kullanabilir.

Daha iyi performans ve daha az izin sorunu için ağırlıklı olarak Linux araçlarıyla kullanılan projeler çoğu zaman WSL dosya sisteminde, Windows'a özgü projeler ise Windows dosya sisteminde tutulur.

Kurulumu Doğrulama

Git'i kurduktan sonra terminali yeniden başlatın ve şu komutu çalıştırın:

git --version

Ardından çalıştırılabilir dosyanın konumunu belirleyin:

# Windows Komut İstemi
where git

# Windows PowerShell
Get-Command git

# macOS veya Linux
which git

Git'in yerleşik yardımını açabildiğini de doğrulayın:

git help config

Ya da daha kısa komutu kullanın:

git config -h

Bu komutlar çalışıyorsa Git kurulumu mevcut terminal tarafından erişilebilir durumdadır.

Git Yapılandırmasını Anlamak

Git'in davranışı yapılandırma değişkenleriyle kontrol edilir. Bu değişkenler farklı kapsamlarda tanımlanabilir.

KapsamTipik Kullanım AmacıYaygın Konum
SystemBilgisayardaki tüm kullanıcılar için varsayılanlarKurulum düzeyindeki Git yapılandırması
GlobalGeçerli kullanıcı için varsayılanlar~/.gitconfig veya kullanıcı yapılandırma dizini
LocalTek bir depoya özgü ayarlar.git/config
WorktreeEtkinleştirildiğinde belirli bir bağlı worktree'ye ait ayarlar.git/config.worktree

Daha özel kapsamlar, daha genel kapsamları geçersiz kılar. Bir depoda tanımlanan yerel e-posta adresi global e-posta adresini geçersiz kılabilir; global değer ise diğer depolarda kullanılmaya devam eder.

Bu yapı, aynı bilgisayarı hem kişisel hem de kurumsal işler için kullandığınızda oldukça yararlıdır.

Modern ve Klasik git config Sözdizimi

Güncel Git belgelerinde açık alt komutlar sunulur:

git config set --global user.name "Jane Developer"
git config get --global user.name
git config list --global

Birçok eğitim ve mevcut betik ise klasik sözdizimini kullanır:

git config --global user.name "Jane Developer"
git config --global --get user.name
git config --global --list

Klasik biçim hâlâ yaygın olarak karşınıza çıkar. Bu rehber, geniş bir Git sürümü aralığında çalıştığı için birçok örnekte klasik biçimi kullanırken uygun yerlerde modern biçimi de gösterir.

Commit Kimliğinizi Yapılandırın

Git'in yeni commitlere yazacağı ad ve e-posta adresini belirleyin:

git config --global user.name "Jane Developer"
git config --global user.email "jane@example.com"

Değerleri kontrol edin:

git config --global --get user.name
git config --global --get user.email

Güncel açık alt komutlarla:

git config get --global user.name
git config get --global user.email

Git Adınız Hosting Platformundaki Kullanıcı Adınız Değildir

user.name genellikle commitlere yazılan, insanlar tarafından okunabilir yazar adını temsil eder. GitHub, GitLab veya Bitbucket kullanıcı adınızla aynı olmak zorunda değildir.

user.email de commit meta verisidir. Kimlik doğrulama bilgileri, HTTPS kimlik bilgisi yardımcıları veya SSH anahtarları üzerinden ayrı olarak yönetilir.

E-posta Adresi Neden Önemlidir?

Hosting platformları, commit e-posta adresi doğrulanmış bir adresle veya platformun sağladığı gizlilik adresiyle eşleştiğinde commitleri hesabınızla ilişkilendirebilir.

Adresi bilinçli seçin. Kişisel bir depoda kişisel e-posta adresi kullanılırken kurumsal bir depoda iş e-posta adresi zorunlu olabilir.

Tek Bir Depoda Farklı Kimlik Kullanma

İlgili deponun içindeyken komutları --global olmadan çalıştırın:

git config user.name "Jane Developer"
git config user.email "jane@company.example"

Son değerin hangi dosyadan geldiğini doğrulayın:

git config --show-origin --get user.email

Git'in Kimlik Tahmin Etmesini Engelleme

Birden fazla kimlik arasında düzenli olarak geçiş yapan geliştiriciler, açık yapılandırmayı zorunlu kılabilir:

git config --global user.useConfigOnly true

Bu ayar etkin olduğunda Git, gerekli kimlik bilgileri eksikse ad veya e-posta adresini sessizce tahmin etmez. Böylece iş commitlerinin yanlışlıkla kişisel adresle veya kişisel commitlerin iş adresiyle oluşturulması önlenebilir.

Varsayılan Başlangıç Dalı Adını Belirleyin

Yeni depolar oluşturulurken Git'in kullanacağı dal adını seçin:

git config --global init.defaultBranch main

Bu ayar, gelecekte git init ile oluşturacağınız depoları etkiler. Mevcut depolardaki dalları yeniden adlandırmaz.

Değeri kontrol edin:

git config --global --get init.defaultBranch

Kuruluşunuz trunk gibi farklı bir adlandırma standardı kullanıyorsa bu adı yapılandırın.

Git'in Varsayılan Düzenleyicisini Yapılandırın

Git, etkileşimli metin girişi gerektiğinde bir düzenleyici açar. Düzenleyici komutunun siz düzenlemeyi bitirene kadar beklemesi gerekir; aksi hâlde Git dosya kaydedilmeden işleme devam edebilir.

Visual Studio Code

git config --global core.editor "code --wait"

--wait seçeneği, düzenleyici sekmesi kapatılana kadar Git işleminin beklemesini sağlar.

Vim

git config --global core.editor "vim"

Nano

git config --global core.editor "nano"

Windows Not Defteri

git config --global core.editor "notepad"

Düzenleyici Yapılandırmasını Test Etme

git config --global --edit

Yapılandırdığınız düzenleyici, global Git yapılandırma dosyasını açmalıdır. Yalnızca test yapıyorsanız değişiklik yapmadan kapatabilirsiniz.

Git bir commit veya birleştirme sırasında donmuş gibi görünüyorsa giriş bekleyen bir düzenleyici penceresi ya da terminal tabanlı düzenleyici olup olmadığını kontrol edin.

Satır Sonlarını Dikkatle Yapılandırın

Metin dosyaları genellikle iki satır sonu biçiminden birini kullanır:

  • LF: Linux ve macOS'ta standarttır.

  • CRLF: Windows'a özgü metin dosyalarında yaygındır.

Kontrolsüz satır sonu dönüştürmeleri, bir dosyanın tüm satırlarının değiştirilmiş görünmesine, kod incelemelerinin gereksiz değişikliklerle dolmasına veya LF gerektiren betiklerin bozulmasına neden olabilir.

core.autocrlf Ayarını Anlamak

Yaygın değerler şunlardır:

  • true: Depodaki metni LF olarak normalleştirir ve çalışma ağacında genellikle CRLF kullanır.

  • input: İçerik eklenirken CRLF'yi LF'ye dönüştürür; ancak checkout sırasında LF'yi CRLF'ye dönüştürmez.

  • false: Bu ayarın yönettiği otomatik dönüştürmeyi kapatır.

Windows'ta yaygın bir yapılandırma şöyledir:

git config --global core.autocrlf true

macOS veya Linux'ta yaygın bir yapılandırma şöyledir:

git config --global core.autocrlf input

Bunlar evrensel kurallar değildir. Ekibin depo politikası öncelikli olmalıdır.

Ekip Projelerinde .gitattributes Dosyasını Tercih Edin

Depoya eklenmiş bir .gitattributes dosyası, tüm katkı sağlayanlar için ortak bir politika oluşturur.

Örnek:

* text=auto

*.sh text eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf

*.png binary
*.jpg binary
*.pdf binary

Bu yaklaşım, her katkı sağlayanın aynı global ayarlara sahip olduğunu varsaymaktan daha güvenilirdir.

Satır Sonu Güvenlik Uyarılarını Etkinleştirme

Git'in geri alınması zor olabilecek dönüştürmeler hakkında uyarmasını sağlayabilirsiniz:

git config --global core.safecrlf warn

Git'in güvenlik kontrolünü geçemeyen dönüştürmeleri reddetmesini istiyorsanız warn yerine true kullanın.

Mevcut Bir Depoyu Düşünmeden Normalleştirmeyin

Yerleşik bir projeye satır sonu politikası eklemek, çok büyük bir normalleştirme commiti oluşturabilir. Bu değişikliği ayrı planlayın, temiz bir çalışma ağacından başlayın, sonucu dikkatle inceleyin ve normalleştirmeyi işlevsel kod değişiklikleriyle aynı committe birleştirmeyin.

Renkli Çıktıyı Yapılandırın

Modern Git sürümleri terminal renklerini zaten varsayılan olarak otomatik kullanır. Yine de bu davranışı açıkça belirtebilirsiniz:

git config --global color.ui auto

auto, çıktı etkileşimli bir terminale gönderildiğinde renk ekler; ancak yönlendirilmiş çıktılara terminal kontrol kodlarını zorla yazmaz.

Global Bir Ignore Dosyası Yapılandırın

Bir deponun .gitignore dosyası, projeye özgü ve tüm katkı sağlayanların ihtiyaç duyduğu kalıpları içermelidir.

Global ignore dosyası ise yalnızca kişisel işletim sisteminizin veya düzenleyicinizin oluşturduğu dosyalar için uygundur.

Bir dosya oluşturun:

# macOS veya Linux
touch ~/.gitignore_global

# Windows'ta Git Bash
touch ~/.gitignore_global

Git'i bu dosyayı kullanacak şekilde yapılandırın:

git config --global core.excludesFile ~/.gitignore_global

Kişisel kalıp örnekleri:

.DS_Store
Thumbs.db
.idea/workspace.xml
*.swp

Proje için gerekli kuralları yalnızca kişisel global dosyanıza koymayın. Diğer geliştiriciler ve CI ortamları bu kuralları alamaz.

HTTPS Kimlik Bilgilerini Güvenli Biçimde Yapılandırın

Bir HTTPS uzak bağlantısı kimlik doğrulaması istediğinde Git bir kimlik bilgisi yardımcısını çağırabilir. Yardımcı, kimlik bilgilerini geçici olarak önbelleğe alabilir, işletim sisteminin güvenli depolamasında saklayabilir veya modern tarayıcı tabanlı oturum açma akışlarını yönetebilir.

Yapılandırılmış yardımcıları inceleyin:

git config --show-origin --get-all credential.helper

Git for Windows'ta, kurulum sırasında seçildiğinde Git Credential Manager çoğunlukla otomatik olarak kurulur ve yapılandırılır.

Git Credential Manager macOS ve Linux'ta da kullanılabilir. Kurulduğunda desteklenen hosting hizmetleri ve güvenli kimlik bilgisi depolamasıyla entegre olabilir.

Düz Metin Kimlik Bilgisi Saklamaktan Kaçının

Yerleşik store yardımcısı kimlik bilgilerini şifrelemeden bir dosyaya yazar. Kişisel veya paylaşılan bir bilgisayarda güvenlik risklerini tam olarak anlamadan kullanmayın:

# Güvenlik risklerini tamamen anlamıyorsanız kullanmayın
git config --global credential.helper store

İşletim sistemi anahtar zincirini, Git Credential Manager'ı veya SSH kimlik doğrulamasını tercih edin.

Kimlik Bilgileri user.name ve user.email Değildir

Şu ayarlar:

user.name
user.email

commit yazarlığını kontrol eder. Uzak hosting hizmetinde oturum açmanızı sağlamaz.

Kimlik doğrulama şu yöntemlerden biriyle gerçekleştirilir:

  • HTTPS kimlik bilgisi yardımcısı.

  • Onaylı bir istemci tarafından yönetilen kişisel erişim tokenı.

  • SSH anahtarı ve SSH agent.

  • Kuruluşa özgü bir kimlik doğrulama sistemi.

SSH'yi Şimdi Yapılandırmalı mısınız?

SSH, uzak depo kimlik doğrulaması için kullanışlıdır; ancak Git'in kurulmasından ayrı bir konudur.

Eksiksiz bir SSH kurulumu şunları içerir:

  • Bir anahtar çifti oluşturmak.

  • Özel anahtarı korumak.

  • Anahtarı bir SSH agent'a yüklemek.

  • Açık anahtarı hosting platformuna eklemek.

  • Bağlantıyı test etmek.

  • Gerektiğinde birden fazla hesabı yönetmek.

Bu süreç ayrı bir makalede ele alınmalıdır. Bu kurulum rehberi için Git'in HTTPS veya SSH uzak depo URL'lerini kullanabildiğini bilmeniz yeterlidir.

İsteğe Bağlı Kullanım Kolaylığı Ayarları

Bu ayarlar yararlıdır; ancak ilk commit için zorunlu değildir.

İlk Push İşleminde Upstream'i Otomatik Belirleme

git config --global push.autoSetupRemote true

Bu ayar, yaygın merkezî iş akışlarında yeni bir dalın ilk push işlemini kolaylaştırabilir. Alışılmadık uzak depo kurallarına sahip ekipler açık komutları tercih edebilir.

Basit Alias'lar Oluşturma

git config --global alias.st status
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.last "log -1 HEAD"

Ardından:

git st
git br
git last

Standart Git komutlarını unutmanıza yol açacak kadar çok alias oluşturmayın. Belgeler, hata mesajları ve ekip arkadaşlarınız genellikle özgün komut adlarını kullanır.

Anlamadan Global Bir Pull Stratejisi Seçmeyin

Git, indirilen değişiklikleri merge, rebase veya yalnızca fast-forward davranışıyla bütünleştirebilir. Bu tercihler projenin geçmişini etkiler.

Örnekler:

git config --global pull.rebase false
git config --global pull.rebase true
git config --global pull.ff only

Yalnızca bir uyarıyı susturmak için bu ayarlardan birini kopyalamayın. Önce ekibin iş akışını öğrenin, ardından davranışı bilinçli olarak seçin.

Son Yapılandırmayı İnceleyin

Geçerli tüm ayarları ve bunların geldiği kaynak dosyaları listeleyin:

git config --list --show-origin

Modern açık sözdizimiyle:

git config list --show-origin

Tek bir değeri inceleyin:

git config --show-origin --get user.email

Yalnızca global ayarları inceleyin:

git config --global --list

Global dosyayı açın:

git config --global --edit

Git yapılandırma dosyaları aşağıdakine benzer bir biçim kullanır:

[user]
    name = Jane Developer
    email = jane@example.com

[init]
    defaultBranch = main

[core]
    editor = code --wait
    autocrlf = input

[color]
    ui = auto

git config komutlarını kullanmak, dosyayı elle düzenlemekten genellikle daha güvenlidir; çünkü komut adları doğrular ve değerleri doğru sözdizimiyle yazar.

Yeni Başlayanlar İçin Önerilen Yapılandırma

Bu komutları çalıştırmadan önce örnek kimlik bilgilerini kendi bilgilerinizle değiştirin.

git config --global user.name "Jane Developer"
git config --global user.email "jane@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
git config --global color.ui auto
git config --global core.safecrlf warn

Ardından ortamınıza ve proje politikanıza uygun satır sonu ayarını seçin.

Windows için tipik başlangıç noktası:

git config --global core.autocrlf true

macOS veya Linux için tipik başlangıç noktası:

git config --global core.autocrlf input

Son olarak sonucu inceleyin:

git config --list --show-origin

Bir Test Deposu Oluşturun

Git başarılı biçimde bir commit oluşturmadan yapılandırmanın gerçekten doğrulandığı söylenemez.

macOS, Linux veya Git Bash

mkdir git-setup-test
cd git-setup-test

git init

echo "# Git Kurulum Testi" > README.md

git add README.md
git commit -m "Kurulum test deposunu oluştur"

git log --oneline --show-signature
git status

PowerShell

New-Item -ItemType Directory git-setup-test
Set-Location git-setup-test

git init

"# Git Kurulum Testi" | Set-Content README.md

git add README.md
git commit -m "Kurulum test deposunu oluştur"

git log --oneline
git status

Beklenen sonuçlar şunlardır:

  • Depo, seçtiğiniz varsayılan dal adıyla başlatılır.

  • Commit, eksik kimlik bilgisi sormadan tamamlanır.

  • Log çıktısı seçtiğiniz yazar adını ve commiti gösterir.

  • git status temiz bir çalışma ağacı bildirir.

Yazar ayrıntılarını kesin biçimde inceleyin:

git log -1 --format=fuller

Bir Yapılandırma Değerini Değiştirme veya Kaldırma

Yapılandırma komutunu yeniden çalıştırarak yeni bir değer belirleyin:

git config --global user.email "new@example.com"

Global bir değeri kaldırın:

git config --global --unset user.email

Modern sözdizimi:

git config unset --global user.email

Bir anahtar birden fazla değere sahipse önce tüm değerleri inceleyin:

git config --global --get-all credential.helper

Ardından uygun unset komutunu dikkatle kullanın. Kimlik bilgisi yardımcısı yapılandırmalarında bilinçli olarak birden fazla değer bulunabilir.

Git'i Güncelleme

Güncelleme yöntemi, kullandığınız kurulum yöntemiyle uyumlu olmalıdır.

Windows

Git for Windows güncelleyicisini kullanın, mevcut kurulumun üzerine bakımı sürdürülen en son sürümü kurun veya winget ile güncelleyin:

winget upgrade --id Git.Git -e

macOS'ta Homebrew

brew update
brew upgrade git

Debian veya Ubuntu

sudo apt update
sudo apt upgrade git

Fedora

sudo dnf upgrade git

Güncellemeden sonra:

git --version

Kullanıcı düzeyindeki yapılandırma, uygulama dosyalarından ayrı saklandığı için normalde Git güncellemelerinden etkilenmez.

Yaygın Kurulum ve Yapılandırma Sorunları

Windows'ta “git is not recognized” Hatası

Olası nedenler şunlardır:

  • Terminal, Git kurulmadan önce açılmıştır.

  • Kurulum aracı Git'i istenen PATH'e eklememiştir.

  • IDE ortam değişkenlerini henüz yenilememiştir.

  • Kurulum başarısız olmuş veya kaldırılmıştır.

Önce terminali kapatıp yeniden açın. Ardından şu komutu çalıştırın:

where git

Herhangi bir yol görünmüyorsa Git'i onarın veya yeniden kurun ve PATH seçeneğini gözden geçirin.

macOS veya Linux'ta “command not found: git” Hatası

Paket kurulumunu ve PATH'i doğrulayın:

which git
echo $PATH

macOS'ta Xcode Command Line Tools'u kurun veya paket yöneticisi yolunu doğrulayın.

Terminal ve IDE Farklı Git Sürümleri Gösteriyor

IDE, açıkça belirlenmiş farklı bir çalıştırılabilir dosya yolunu kullanıyor olabilir. Şunları karşılaştırın:

git --version
which git

Windows'ta ise:

git --version
where git

Ardından IDE'nin Git ayarlarını inceleyin.

Commitler Yanlış E-posta Adresini Kullanıyor

Geçerli değeri ve geldiği kaynağı kontrol edin:

git config --show-origin --get user.email

Depoya özgü yerel yapılandırma global ayarı geçersiz kılıyor olabilir.

Git Bilmediğiniz Bir Düzenleyici Açıyor

Bildiğiniz bir düzenleyiciyi yapılandırın:

git config --global core.editor "code --wait"

Bir Git işlemi zaten bekliyorsa yeniden denemeden önce mevcut düzenleyici oturumunu tamamlayın veya iptal edin.

Her Satır Değiştirilmiş Görünüyor

Bu durum çoğunlukla satır sonu veya biçim dönüştürmesinden kaynaklanır. Şunları kontrol edin:

git config --show-origin --get core.autocrlf
git diff --ignore-space-at-eol

Deponun .gitattributes dosyasını da inceleyin. Değişikliğin işlevsel mi yoksa yalnızca normalleştirme kaynaklı mı olduğunu anlamadan çok büyük bir değişikliği commit etmeyin.

Git Güvenli Olmayan Depo Uyarısı Veriyor

Git, güvenlik önlemi olarak başka bir işletim sistemi kullanıcısına ait depoyu reddedebilir. Sahiplik veya izinler yanlışsa bunları düzeltin.

Bir depoyu yalnızca sahipliğinin neden farklı olduğunu anladığınız ve ilgili yola güvendiğiniz durumda safe.directory listesine ekleyin. Korumayı joker karakterle global olarak devre dışı bırakmaktan kaçının.

Kimlik Doğrulama Sürekli Bilgi İstiyor

Uzak depo URL'sini ve kimlik bilgisi yardımcısını inceleyin:

git remote -v
git config --show-origin --get-all credential.helper

Olası nedenler arasında süresi dolmuş token, yanlış uzak bağlantı protokolü, eksik kimlik bilgisi yardımcısı, kilitli anahtar zinciri veya kuruluşun belirli bir kimlik doğrulama yöntemi istemesi bulunur.

HTTPS Sertifika Hataları

Sorunu SSL doğrulamasını global olarak kapatarak çözmeye çalışmayın:

# Bunu genel bir çözüm olarak kullanmayın
git config --global http.sslVerify false

Bunun yerine kuruluşun güvenilir sertifika zincirini doğru şekilde kurun veya onaylanmış proxy ve sertifika yapılandırmasını izleyin.

Yinelenen Yapılandırma Değerleri Görünüyor

Şu komutu çalıştırın:

git config --list --show-origin

Aynı anahtar system, global ve local kapsamlarında bulunabilir. Git öncelik kurallarını uyguladığı için tekrarlar her zaman hata anlamına gelmez. Yalnızca istenmeyen girdiyi doğru kapsamdan kaldırın.

Git Windows'ta Çalışıyor, WSL'de Çalışmıyor

Git'i WSL dağıtımının içine kurun ve orada ayrıca yapılandırın. Windows ile WSL aynı Git çalıştırılabilir dosyasını veya global yapılandırmayı otomatik olarak paylaşmaz.

Kaçınılması Gereken Yapılandırma Hataları

  • Commitlerde sahte veya istemediğiniz bir e-posta adresi kullanmak.

  • user.name değerinin uzak platformdaki kullanıcı adı olduğunu varsaymak.

  • Nasıl kapatacağınızı bilmediğiniz bir metin düzenleyici yapılandırmak.

  • Ekibin iş akışını anlamadan global rebase veya pull politikası kopyalamak.

  • HTTPS sertifika doğrulamasını kapatmak.

  • Erişim tokenlarını şifrelenmemiş credential-store yardımcısıyla saklamak.

  • Büyük bir depoda inceleme yapmadan satır sonu normalleştirmesi uygulamak.

  • Genel bir geçici çözüm olarak safe.directory=* kullanmak.

  • Hangi kapsamın öncelikli olduğunu kontrol etmeden birden fazla yapılandırma dosyasını düzenlemek.

  • IDE'nin kullandığı Git'in terminalde kullanılan çalıştırılabilir dosyayla aynı olduğunu varsaymak.

Kurulum ve Yapılandırma Kontrol Listesi

  • git --version komutunu başarıyla çalıştırın.

  • Etkin çalıştırılabilir dosyanın yolunu doğrulayın.

  • Doğru commit yazar adını belirleyin.

  • Doğru commit e-posta adresini belirleyin.

  • main veya kuruluşun istediği başlangıç dalını yapılandırın.

  • Varsayılan bir düzenleyici seçin ve test edin.

  • Satır sonu politikasını gözden geçirin.

  • Kimlik bilgisi yardımcısının güvenli olduğunu doğrulayın.

  • Yapılandırmayı --show-origin ile inceleyin.

  • Bir test deposu oluşturup başarılı bir commit gerçekleştirin.

  • Commit yazarını git log -1 --format=fuller ile doğrulayın.

Sık Sorulan Sorular

Git'i Kurmak İçin GitHub'a İhtiyacım Var mı?

Hayır. Git bağımsız bir sürüm kontrol sistemidir. GitHub, uzak Git depolarını barındırabilen çeşitli hizmetlerden yalnızca biridir.

Bir Git Grafik Arayüzü Kurmalı mıyım?

Grafiksel istemci isteğe bağlıdır. Önce komut satırını öğrenmek; farklı işletim sistemlerinde, sunucularda, IDE'lerde ve hosting platformlarında kullanılabilen aktarılabilir bir anlayış kazandırır. Daha sonra Git'in kendisini değiştirmeden bir grafik arayüz ekleyebilirsiniz.

Aynı Bilgisayarda Git Bash ve PowerShell Kullanabilir miyim?

Evet. PATH doğru yapılandırıldığında ikisi de aynı Git for Windows kurulumunu çağırabilir.

Git E-posta Adresim GitHub E-posta Adresimle Aynı mı Olmalı?

Commitlerin ilgili hesapla ilişkilendirilmesini istiyorsanız hosting hesabının tanıdığı bir adresle eşleşmelidir. Platformun sağladığı gizlilik adresini de kullanabilirsiniz.

Windows Geliştiricileri Her Zaman core.autocrlf=true Kullanmalı mı?

Her zaman değil. Bu ayar yaygın bir başlangıç noktasıdır; ancak depoya eklenmiş .gitattributes politikası ve projenin gereksinimleri evrensel bir kuraldan daha önemlidir.

Git Neden Bir Düzenleyiciye İhtiyaç Duyar?

Git; commit mesajları, birleştirme mesajları, etkileşimli rebase işlemleri, açıklamalı etiketler ve etkileşimli metin girişi gereken yapılandırma düzenlemeleri için bir düzenleyici kullanır.

Global Ayarlar Mevcut Depoları Etkiler mi?

Daha özel bir yerel ayar bunları geçersiz kılmadığı sürece global varsayılanlar uygulanır. init.defaultBranch gibi bazı ayarlar yalnızca yapılandırmadan sonra başlatılan depoları etkiler.

İş ve Kişisel Projeler İçin Farklı Git Kimlikleri Kullanabilir miyim?

Evet. Global bir varsayılan belirleyin, ardından farklı kimlik gerektiren depolarda yerel user.name ve user.email değerlerini yapılandırın. İleri düzey kullanıcılar koşullu yapılandırma include'larını da kullanabilir.

Git Credential Manager Git ile Aynı Şey mi?

Hayır. Git'in güvenli kimlik doğrulama akışları için çağırabildiği bir kimlik bilgisi yardımcısıdır. Git'in kendisi depo geçmişini yönetir.

Sonuç

Güvenilir bir Git ortamı üç katmanla başlar: doğru kurulmuş bir çalıştırılabilir dosya, bilinçli bir kullanıcı yapılandırması ve test edilmiş bir depo iş akışı.

Kurulum, sistemin Git'e erişmesini sağlar. Yapılandırma ise Git'in commitlerinizi nasıl tanımladığını, yeni dallara nasıl ad verdiğini, etkileşimli metni hangi düzenleyicide açtığını, satır sonlarını nasıl yönettiğini ve uzak depo kimlik bilgilerini nasıl edindiğini belirler. Test işlemi de tüm bu parçaların birlikte doğru çalıştığını doğrular.

Kurulum komutlarını anlamadan kopyalanacak değerler gibi görmeyin. Her ayarın kapsamını ve amacını öğrenin. Özellikle commit kimliği, satır sonları, kimlik doğrulama ve pull davranışı hem geliştiriciyi hem de tüm ekibi etkileyebilir.

Git artık kurulup yapılandırıldığına göre sıradaki adım bir depo oluşturmak, durumunu incelemek, dosyalar eklemek ve çalışma dizini, staging area ile ilk commit arasındaki ilişkiyi pratik bir iş akışında anlamaktır.

Resmî Kaynaklar ve Ek Okumalar