Aşağıdaki komutlar günlük çalışma hayatında en yaygın şekilde kullanılan git komutlardır. Eğer en iyi branch yaratma modelini öğrenmek isterseniz, git-flow cheatsheet ve A successful Git branching model yazılarını okuyun, anlayın ve kullanın.


git add file_name


Verilen dosyayı indexler. git add


git add --all


Tüm tracked ve untracked dosyaları indexler. git add


git add .


Silinmiş dosyalar haricinde tüm tracked ve untracked dosyaları indexler. git add


git add -u


Sadece tracked dosyaları indexler. git add


git commit -m 'commit_message'


Tüm indexlenmiş dosyaları commit eder. git commit


git merge branch_name


Verilen dalı aktif olan dal ile birleştirir. git merge


git stash


Aktif olan daldaki tüm indexlenmiş, tracked ve untracked çalışmaları hafızaya alır. git stash


git stash apply


Aktif olan dalın içine hafızada depolanmış olan çalışmaları geri getirir. git stash


git stash save


İndexlenmiş olan tüm dosyaları hafızaya alıp, git stash apply komutu ile diğer bir dala yapıştırır. git stash


git cherry-pick commit_id


Aktif olan dalın içine, sadece verilen committeki değişiklikleri çeker. git cherry-pick


git branch -m current_branch_name new_branch_name


Dalın ismini değiştirir. git branch


git checkout .


Unstaged alanındaki değişiklikleri ve silinen dosyaları geri alır. Dosyalar çalışma ağacından kaldırılır. İndexlenmiş ve untracked dosyaları etkilemez. git checkout


git checkout -- .


Unstaged alanındaki değişiklikleri ve silinen dosyaları geri alır. Dosyalar çalışma ağacından kaldırılır. İndexlenmiş ve untracked dosyaları etkilemez. git checkout


git checkout -- file_name


Verilen dosyaya yapılan değişiklikleri geri alır. Dosya çalışma ağacından kaldırılır. Untracked dosyaları etkilemez. git checkout


git update-index --assume-unchanged file_name


Verilen dosyaya yapılan değişiklikleri tutar ve çalışma ağacından kaldırır. İndexlenmiş ve untracked dosyaları etkilemez. git update-index


git update-index --no-assume-unchanged file_name


Komut --assume-unchanged'ın yaptığı işlemleri geri alır. İndexlenmiş ve untracked dosyaları etkilemez. git update-index


git checkout branch_name file_name


Verilen daldaki dosyayı, aktif olan dala kopyalar. git checkout


git push origin --delete branch_name


Verilen dalı uzak depodan kaldırır. git push


git clean -f


Untracked dosyaları sistemden ve çalışma ağacından kaldırır. İndexlenmiş ve tracked dosyaları etkilemez. git clean


git clean -fd


Untracked dosya ve klasörleri sistemden ve çalışma ağacından kaldırır. İndexlenmiş ve tracked dosyaları etkilemez. git clean


git rm --cached file_name


Verilen dosyayı değişiklikleri tutarak untracked alanına taşır. Dosyalar sistemden silinmez. Yeni dosyalar için -f eki kullanılır. Untracked dosyaları etkilemez. git rm


git rm --force file_name


Verilen dosyayı sistemden kaldırır ve çalışma ağacında gösterir. Untracked dosyaları etkilemez. git rm


git reset


İndexlenmiş dosyalari indexten kaldırıp, geldikleri yere geri koyar. Dosya değişiklikleri olduğu gibi kalır. git reset


git reset HEAD file_name


Verilen indexlenmiş dosyayı indexten kaldırıp, geldiği yere geri koyar. Dosya değişiklikleri olduğu gibi kalır. git reset


git reset --soft HEAD~n veya git reset --soft commit_id


Commit kayıtlarında "n" (1,2,3...) kere geri gider ve değiştirilen tüm dosyaları index alanına geri koyar. O andan onceki ve sonraki tüm commit kayıtlarındaki değişiklikler olduğu gibi kalır. Örnek: eğer 3. committen 1. commite geri dönülüp, tekrar commit işlemi gerçekleştirilirse, commit 2 ve 3 kayıtlarından kaldırılır çünkü onlar artık commit 1'in içine geçmiş olurlar. git reset


git reset --hard


Aktif olan daldaki tüm yapılanları siler. Kurtarma gibi bir ihtimal olmaz. git reset


git reset --hard HEAD~n veya git reset --hard commit_id


Commit kayıtlarında "n" (1,2,3...) kere geri gider ve o verilen daldaki tüm değişiklikleri kaldırır. Kurtarma gibi bir ihtimal olmaz. Örnek: eğer 3. committen 1. commite geri dönülürse, commit 2 ve 3 kayıtlarından kaldırılır. git reset


git checkout -b branch_name commit_id


Verilen commit üzerine kurulu, yeni bir dal yaratır. Gösterilen hash-id'yi bulmak için git reflog komutunu kullanmanız gerekir. git checkout


git branch branch_name commit_id


Verilen commit üzerine kurulu, yeni bir dal yaratır. Gösterilen hash-id'yi bulmak için git reflog komutunu kullanmanız gerekir. git branch


git ls-remote git@github.com:Inanzzz/test.git master


En son yapılan commit işlemin id/hash nosunu verir. git-ls-remote


git show commit_id


Verilen commit'in ne yaptığını gösterir. Yapılan tüm değışiklikleri tek tek gösterir. git-show


git show commit_id --stat


Verilen commit içinde hangi dosyaların değiştirildiğini gösterir. git-show


git log --follow -p file_name


Verilen dosya ile ilgili yapılan tüm değişiklikleri, en yeniden en eskiye doğru listeler. git-log


git push origin :name_of_the_remote_branch


Remote repository içindeki belirlenen branchı siler. git-push


git remote add origin git@github.com:Your/remote-project.git


Eğer yanlışlıkla yerel ortamdaki remote repository bilgilerini rm -rf .git ile ve başka bir şekilde silerseniz, yerel değişiklikleri push yapmak istediğinizde, "fatal: 'origin' does not appear to be a git repository" ve "fatal: Could not read from remote repository" hatalarını alırsınız. Bu komut işte o sorunu çözer. git-remote


git log --pretty=oneline


Sadece commit ID ve mesajlarını gösterir. git-log


git log --graph


Git commit geçmişini grafiksel olarak ekrana döker.


git log -p --all -S 'herhangi bir metin'


Değişikliklerde belirli bir metin içeren tüm commit IDleri listeleyin.