Geliştirici Araçları
Git Komutları ve Kullanımı
Günümüzde ortak projeler geliştirmek, açık kaynaklı kişisel kod geliştirmek için bir çok kişi git tercih ediyor. Bu kaynak kontrol aracı ile geliştirilen projeler host edilmesi için GitHub, GitLab platformlarıda oldukça popüler olarak kullanılmaktadır.
2 Sebepten dolayı kaynak kontrol sistemine ihtiyaç duyarız;
- Kaynak kodunuzun değişimlerini takip etmek ve bunu yönetebilmek
- Birlikte kod geliştirmek.
Git bu ihtiyaçları karşılamak hazır bir takım fonksiyonlara sahip. Aşağıda jrebel hazırlamış olduğu görselde bu fonksiyonları görebilirsiniz.
1. Git Komutları
Bir klasör oluşturup içerisinde
git init
fonksiyonu çalıştırdığımızda .git altında ufak bir dosya yönetim sistemi oluşturduğunu görebilirsiniz.
Bu klasörün içerisinde dosyalarınızın state(versiyonlarını) tutacaktır.
- Bu dosyalar arasındaki farklar,
- commit sırasındaki kesitler
hepsi bu dosyalar içerisinde tutulmaktadır.
HEAD
branches
config
description
hooks
index
logs
objects
packed-refs
refs
.gitignore dosyası git dosya sistemine katılmasını isteMediğiniz binary vb dosyalar için kullanılır. Örnek istenmeyen dosya türlerini bu linkinden erişebilirsiniz.
2. Git Veri Akışı
Aşağıdaki resimden git veri akışının nasıl gerçekleştirildiğini görebilirsiniz. Aşağıdaki komutlarla bunun nasıl çalıştığına bakalım.
3. Untracked Files (İzleri Oluşturulmamış Dosyalar)
a1.txt ve a2.txt dosyalarını çalıştığınız klasöre eklediğimizde bunları henüz izleri oluşturulmamıştır.
git status
fonksiyonu ile izi oluşmamış(untracked) dosyaları görebililirsiniz.
4. Staging Taşıma
git add
fonksiyonu ile a1.txt , a2.txt dosyasını Staging Alanına geçirmiş oluruz.
İstediğiniz dosyayı Staging Alanından çıkarmak için
git reset HEAD <filename>
komutunu kullanmanız yeterlidir.
5. Local (Kendi Çalışma Ortamınızaki) Dosyaları Değiştirmek
a1.txt dosyasınde değişiklik yaptım
git status
dosyanın local tarafta modified olduğunu görebilirim.
git diff
ile de baktığımda dosyada hangi alanların değiştiğini görebilirim
git checkout — a1.txt
ile yaptığınız değişikliği geriye alabilirsiniz.
6. Commit (Save to Local Repo)
git commit -m ‘msg’
komutu ile dosyalarınızı Local Repo’nuzda kaydedin..
7. Push (Save to Remote Repo)
git push origin master
komutu ile uzaktaki repo üzerine kayıt yapabilirsiniz.
8. Pull (Get From Remote Repo)
git pull
Push yapmadan bir pull yapın çünkü başkaları Remote Repo’da değişiklikler yapmış olabilir önce değişiklikleri alıp sonrasında kendi değişikliklerinizi yapmanız gerekir.
9. Conflict/Merge
Gerçek dünyada siz bir dosyada bir güncelleme yaparken başka birisi o dosyayı silmiş, ismini değiştirmiş olabilir. Bunun için bu farklılıkları çözmemiz gerekir. Oluşabilecek durumlar.
1nci tip Sorun: İki kişinin aynı dosyada değişiklik yapması .
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan, İkimizdekini mantıklı bir şekilde gözle birleştir.
git pull
komutunu çalıştırdığınızda CONFLICT oluşur. Dosyada <<<<<HEAD olarak gösterilen kısımlar Local değişiklik === Remote’dan gelen değişiklikleri görebilirsiniz.
2nci tip Sorun: Birisinin çalıştığı dosyaları ,diğer kişinin silmesi
Çözüm: Bendeki kaynağı kullan, Ondaki kaynağı kullan..
Değişikliği yapıp direk push etmeye çalıştığımda
(fetch first)
uyarısını aldım.
2nci tip sorunda AutoFix işleminin yapılamadığını görebilirsiniz. Bunun için kendiniz dosyayı local repo’dan çıkarıp tekrar commit yapmanız gerekir.
10. Değişikliklerin Tarihçesini ve Detayını Gör
git logs
komutu ile değişikliklerin tarihçesini görebilirsiniz..
git shows
komutu ile ilgili comit içerisinde yapılan değişiklikleri görebilirsiniz..
11. Git Branch Oluşturma
Genelde projelerde master, development, bugfix, release, poc amaçlı dallar(branch) oluşturulur. Bu dalları oluşturmak git ile oldukça basittir .
git branch
komutları ile branch lerinizi kolay bir şekilde yönetebilirsiniz..
Referanslar
Okumaya Devam Et 😃
Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.