Git Komutları Cheat Sheet
Git, çok küçükten çok büyüğe kadar olan projelerin versiyon yönetimini verimli ve yüksek hızda gerçekleştirebilen, açık kaynaklı, dağıtık bir versiyon kontrol sistemidir. Git, Linus Torvalds tarafından Linux çekirdeği geliştirmesinin yönetilmesine yardımcı olmak amacıyla geliştirilmiş, açık kaynaklı bir versiyon kontrol yazılımıdır.
Git Temelleri
git init <directory>Belirtilen dizinde boş bir Git deposu oluşturur. Parametre olmadan çalıştırılırsa, mevcut dizini bir Git deposu olarak başlatır.
git clone <repo><repo> adresindeki depoyu yerel makineye kopyalar. Orijinal depo yerel dosya sisteminde olabileceği gibi, HTTP veya SSH üzerinden uzak bir makinede de bulunabilir.
git config user.name <name>Mevcut depodaki tüm taahhütler (commit) için kullanılacak yazar adını tanımlar.
git add <directory>Bir sonraki taahhüt için <directory> dizinindeki değişiklikleri ekler.
git commit -m "<message>"Hazırlanmış (staged) değişikleri <message> içeriğini taahhüt mesajı olarak kullanarak kaydeder.
git statusHangi dosyaların hazırlık aşamasında, hazırlanmamış ve izlenmeyen durumda olduğunu listeler.
git logTüm taahhüt geçmişini varsayılan biçimde görüntüler.
git diffÇalışma dizini (henüz git add yapılmamış) ile hazırlık alanı (git add yapıldıktan sonra) arasındaki farkları karşılaştırır.
Değişiklikleri Geri Alma
git revert <commit><commit> ile yapılan tüm değişiklikleri geri alan yeni bir taahhüt oluşturur ve bunu mevcut dala uygular.
git reset <file><file> dosyasını hazırlık alanından kaldırır ancak çalışma dizinini değiştirmez. Bu işlem, herhangi bir dosya değişikliğinin üzerine yazmadan dosyanın hazırlık aşamasını iptal eder.
git clean -nÇalışma dizininden hangi dosyaların silineceğini gösterir. Temizliği gerçekleştirmek için -n bayrağı yerine -f bayrağını kullanın.
Geçmişi Yeniden Yazma
git commit --amendEn son Git taahhüt (commit) olayını değiştirir. Çalışma dizininde taahhüt edilebilir değişiklikler varsa, git commit –amend komutuyla bu değişiklikler de son taahhütle birlikte kaydedilir.
git rebase <base>Mevcut dalı <base> üzerine yeniden temel alır (rebase). <base> bir taahhüt kimliği (commit ID), dal adı, etiket veya HEAD olabilir.
git reflogTüm dalların tüm işlem kayıtlarını (silinen taahhüt kayıtları ve sıfırlama işlemleri dahil) görüntüleyebilir.
Git Dalları (Branching)
git branchTüm dalları listeler. <branch> adında yeni bir dal oluşturmak için bir parametre ekleyin.
git checkout -b <branch><branch> adında yeni bir dal oluşturur ve bu dala geçer. Mevcut bir dala geçmek için -b parametresini kaldırın.
git merge <branch><branch> dalını mevcut dal ile birleştirir.
Uzak Depolar (Remote)
git remote add <name> <url>Yeni bir uzak depo ekler. Uzak depo eklendikten sonra diğer komutlarda <url> yerine kısa yol olarak <name> kullanılabilir.
git fetch <remote> <branch>Depodan belirtilen
git pull <remote>Mevcut dalın belirtilen uzak kopyasını alır ve hemen yerel kopyayla birleştirir.
git push <remote> <branch>Dalı ve gerekli taahhütleri ve nesneleri <remote> de deposuna gönderir. Uzak depo üzerinde belirtilen isimde bir dal yoksa yeni bir dal oluşturulur.
git config
git config --global user.name <name>Mevcut kullanıcının tüm taahhütleri için kullanılacak yazar adını tanımlar.
git config --global user.email <email>Mevcut kullanıcının tüm taahhütleri için kullanılacak yazar e-postasını tanımlar.
git config --global alias.<alias-name> <git-command>Bir Git komutu için kısa yol (takma ad) oluşturur.
git config --system core.editor <editor>Bilgisayardaki tüm kullanıcılar için komutlar tarafından kullanılacak metin düzenleyiciyi ayarlar.
git config --global --editGenel yapılandırma dosyasını manuel düzenleme için bir metin düzenleyicide açar.
git log
git log -<limit>Son <limit> taahhüt geçmişi kaydını görüntüler.
git log --onelineTaahhüt geçmişini görüntüler ve her taahhüdü tek bir satıra sığdırır.
git log -pTaahhüt geçmişini ve her taahhüt için tam farkı (diff) görüntüler.
git log --statDosyaların hangilerinin değiştirildiği ve her dosyadan eklenen veya silinen göreli satır sayısı dahil olmak üzere taahhüt geçmişini görüntüler.
git log --author="<pattern>"Belirli bir yazar tarafından yapılan taahhütleri arar.
git log --grep="<pattern>"Düzenli ifade eşleşmesi kullanarak taahhüt geçmişini arar.
git log <since>..<until><since> ve <until> arasında gerçekleşen taahhütleri görüntüler.
git log -- <file>Yalnızca belirtilen dosyayı içeren taahhüt kayıtlarını görüntüler.
git diff
git diff HEADÇalışma dizini (henüz git add yapılmamış) ile depo (git commit edildikten sonraki sürüm) arasındaki farkları karşılaştırır.
git diff --cachedHazırlık alanı (git add yapıldıktan sonra) ile depo (git commit edildikten sonraki sürüm) arasındaki farkları karşılaştırır.
git reset
git resetHazırlık alanını en son taahhütle eşleşecek şekilde sıfırlar ancak çalışma dizinini değiştirmez.
git reset --hardHem hazırlık alanını hem de çalışma dizinini en son taahhütle eşleşecek şekilde sıfırlar ve çalışma dizinindeki tüm değişikliklerin üzerine yazar.
git reset <commit>Mevcut dal işaretçisini <commit> değerine geri taşır ve hazırlık alanını sıfırlar ancak çalışma dizinini değiştirmez.
git reset --hard <commit>Yukarıdakiyle aynıdır ancak hem hazırlık alanını hem de çalışma dizinini sıfırlar. Taahhüt edilmemiş değişiklikleri ve <commit> sonrası tüm taahhütleri siler.
git pull
git pull --rebase <remote>Mevcut dalın uzak kopyasını alır ve yerel kopya üzerine yeniden temellendirir (rebase). Dalları birleştirmek için merge yerine git rebase kullanır.
git push
git push <remote> --forceZorla gönderim (Force push) yapar.
git push <remote> --allTüm yerel dalları belirtilen uzak depoya gönderir.
git push <remote> --tagsTüm yerel etiketleri uzak depoya gönderir.