Sıkça kullandığım git komutlarını listelemeye çalıştım.
| No | Komut | Açıklama |
| 1 | git checkout dev | Lokaldeki dev brach’ine geçmenizi sağlar. |
| 2 | git pull | Tüm brach güncellemelerini sunucudan indirir. |
| 3 | git checkout -b bug/yeni | Yeni bir lokal brach oluşturur. |
| 4 | git checkout bug/yeni | Lokal bug/yeni branch’ine geçmeyi sağlar. |
| 5 | git commit -m “Açıklama” | Yapılan değişiklikleri çalışılan lokal brach’e kaydeder. |
| 6 | git push | Kaydedilen değişiklikleri çalışılan brach ile aynı isimle sunucuya gönderir. |
| 7 | git merge dev | Çalışılan brach’i lokal dev branch’ine birleştirir. |
| 8 | git stash | Yapılan değişikliği geçici olarak kaydeder. |
| 9 | git stash pop | Kaydedilen geçici değişikliği geri getirir. |
| 10 | git cherry-pick commitno | Commit’i aktif branch’a taşır. |
| 11 | git reset --hard HEAD~x |
hard yapılan değişiklikleri geri alır. HEAD commit referansı vermek için kullanılır, kullanılmazsa sadece commit edilmemiş değişiklikleri dikkate alır. x commit öncesine döner. ~x yerine ^ kullanılırsa son commit’i ifade eder. |
| 12 | git push -f <remote> <branch> | brach geçmişini temizleyerek gönderir. |
| 13 | git stash clear | Geçici dosyaları temizler. |
| 14 | git reset HEAD^ |
Son commit’i geri alır, değişiklikler korunur. |
| 15 | git clean -fd | Takip edilmeyen dosya ve klasörleri siler |
Komutların kullanımı için örnek senaryolar:
Yeni geliştirme yapılması:
1 -> 2 -> 3 -> 5 -> 6 -> 1 -> 2 -> 4 -> 7 -> 6
Henüz sunucuya gönderilmemiş (6) değişiklikleri farklı bri brach’e taşımak:
4 -> 10
Sunucuya gönderilmiş commitleri silmek:
11 -> 12
Sunucuya gönderilmiş commit’i silerek yeni bir commit ile göndermek için:
14 -> 12
Henüz commitlenmemiş değişikleri geri alarak takip edilmeyen dosya ve klasörleri silmek için:
11 -> 15
Sunucuya gönderdilmiş commit içindeki bir dosyaya ait değişliğin kaldırılması:
git show commitno -- some_file.c | git apply -R
Aynı kodların başka bir git sunucusuna aynalanması / kopyalanması:
git push --mirror https://github.com/mkysoft/myproject.git
Detaylar: http://ohshitgit.com/
Git konusunda değerli bir kaynak: https://www.slideshare.net/lemiorhan/git-antipatterns-extended-version-with-28-common-antipatterns-scturkey-meetup