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