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