Versiyon Kontrol Sistemi Nedir ? (VCS)
- Birden fazla yazılımcının aynı anda, birbirlerinin değişiklikleriyle oynamadan bir proje üzerinde çaışabilmesine olanak sağlar.
- İstenildiğinde eski bir kod kaydına ulaşmaya yarar.
Kod:
"12.12.2012 tarihinde X tarafından güncellenmiştir."
- Eski sürüm ile yeni sürüm arasında karşılaştırma (compare) yapılmak istendiğinde, bize bunu sağlar ve bu tür sistemlere versiyon kontrol sistemi denir. Bununla birlikte daha birçok özelliği bulunmaktadır.
Git de bir çeşit versiyon kontrol sistemidir. Yazdığımız projeleri bulut bilişim mantığıyla (cloud systems) bilgisayarımızda yerel olarak tutulmasını sağlar.
Linux Dağıtımları İçin Git Kurulumları
Kod:
#Debian Tabanlı Dağıtımlar İçin;
sudo apt-get install git-all
#Redhat Tabanlı Dağıtımlar İçin;
sudo yum install git-all
#DNF Paket Yöneticisi ile Çalışan Dağıtımlar İçin;
sudo dnf install git-all
#Diğer Linux Dağıtımı Kullananlar zaten iyi biliyordur :)
#Windows ve MAC için git-scm.com adresinden indirebilirsiniz.
Konfigürasyon İşlemleri (Configuration)
Konfigürasyon ayalarını yapma sebebimiz bir proje gönderdiğimiz zaman ya da proje de değişiklik yaptığımız zaman, "Bu değişiklikler kim tarafından yapıldı?" sorusu içindir.
Git kurulumu başarılı bir şekilde gerçekleşmiş mi diye kontrol ediyoruz.
Kod:
git --version
Şimdi ise Git'e kendimizi konfigüre edelim.
Kod:
git config --global user.name "İsim Soyisim"
git config --global user.email "[email protected]"
[ame="https://www.youtube.com/watch?v=PFLA3lmHXY8&feature=youtu.be"]https://www.youtube.com/watch?v=PFLA3lmHXY8&feature=youtu.be[/ame]
Git Çalışma Ortamı Oluşturmak ve İşlemek (Commit Etmek)
Öncelikle bir Working Directory (Çalışma Dizini) belirliyoruz, burada oluşturduğumuz projeleri Staging Area (Geçiş Bölgesi) adını verdiğimiz evreleme alanına gönderiyoruz, daha sonra gerekli kontrolleri yapıyoruz ve Git Repository'mize depoluyoruz. Olay örgümüz bu şekildedir.
Bir dizin belirleyip orayı Git çalışma ortamı haline getireceğiz.
Kod:
git init
Burada projelerimizi oluşturduktan sonra projemizi Staging Area'ya yolluyoruz, yani geçiş bölgemize.
Kod:
git add .
Kod:
[COLOR=White][FONT=Arial]#Buradaki nokta bulunduğu klasördeki tüm dosyaları kapsar, eğer tek bir proje göndermek istiyorsanız;[/FONT][/COLOR]
[COLOR=White][FONT=Arial]git add <projeadi>[/FONT][/COLOR]
Projemizin durumunu bir görüntüleyelim, bu komut bizim geçiş bölgemizde neler olup bittiğini söylüyor. Örneğin dosya eklendiyse, "Dosya eklendi, Dosya değiştirildi, Dosya silindi" tarzında.
Kod:
git status
Kod:
git commit -m "İşleme mesajınızı buraya yazınız."
Git depomuza projemizi Commit ettik.
Loglara bakalım ve oradan da Commit'imizi görelim. Çıktısı, konfigürasyon ayalarını yaptığımız bilgiler ve tarih şeklinde gelecektir.
Kod:
git log
[ame="https://www.youtube.com/watch?v=pKz4FeT6gjw&feature=youtu.be"]https://www.youtube.com/watch?v=pKz4FeT6gjw&feature=youtu.be[/ame]
Projelerde Değişiklikleri Görüntüleme ve Proje Silme
Projelerimizin üzerinde değişiklik yaptığımız zaman, nelerin değiştiğini gözlemlemek için diff parametresini kullanacağız. Proje silmek için ise remove rm parametresini kullanacağız.
Working Directory ile Staging Area arasındaki değişiklikleri görmek için;
Kod:
git diff
Kod:
git diff --staged
Kod:
git diff <projeadı>
Çıktı olarak +Burada kod var. eklenen koddur.
Proje silme işleminin olay örgüsü;
Dosyayı sileriz ve tekrar Commit işlemi gerçekleştiririz.
Kod:
git rm dosyaadi
git add .
git commit -m "Commit gerçekleşiyor."
[ame="https://www.youtube.com/watch?v=X79zYtc_gn0&feature=youtu.be"]https://www.youtube.com/watch?v=X79zYtc_gn0&feature=youtu.be[/ame]
GitHub Nedir ?
Git entegreli bir bulut mantığıdır. Projelerimizi insanlara açık şekilde paylaşırız ve orada fikir alış-verişlerine olanak sağlar. Projemizde bir sorun oluştuğunda bir örneğin bir "Issues" (problem) oluşturarak çözümler, tavsiyeler alabiliriz, insanların projemize katkıları olabilir, aynı şekilde biz de faydalanıp onların geliştirmelerine katkıda bulunabiliriz.
Öncelikle üye olmamız gerekmekte. Üye olduktan sonra bilmemiz gereken belli başlı üç şey;
Watch: Bir projeyi izlememizi sağlar ondan haberdar oluruz.
Star: Projeyi yer imlerine ekleriz ve projede atılmış her adım bize bildirim olarak gelir, anasayfamıza düşer.
Fork: Bir projenin kopyasını repository olarak kendimize almaktır.
- New Repository (+) diyerek yeni bir depo oluşturacağız.
- Repository adımızı belirliyoruz. Boşluk kabul edilmiyor aralara "-" koyuyor. Buna dikkat ediniz.
- Opsiyonel olarak açıklama ekleyebilirsiniz.
- Public ve Private olarak iki seçeneğimiz var. Public herkese açık bir depo alanı oluşturmaktır. Private ise özel alanı oluşturmaktır. Private ücretlidir.(Private için GitLab kullanabilirsiniz.)
Komut istemcimizde depomuza bir takma ad belirleyeceğiz ve bunun üzerinden devam edeceğiz.
Kod:
git remote add <depoyatakmaad> <uzakdepourl>
Commit işlemlerimizi tekrar yapıyoruz ve bu sefer pushluyoruz. Push komutunu verdiğimiz zaman bizden GitHub email ve şifremizi isteyecektir.
Kod:
git add .
git commit -m "first commit"
git push -u takmaad master
.gitignore (İstenmeyen Dosyalar ve Dizinler)
Gönderilmesini, takip edilmesini istemediğimiz dosyaları veya dizinleri bunun içine koyarız ve GitHub'da bu takip edilemez hale gelir. Örneğin database gibi.
Bir .gitignore adında dosya oluşturuyoruz.(adında nokta olmak zorundadır.)
Daha sonra gönderilmesini istemediğimiz dosyanın adını yazıp kaydedip kapatıyoruz.
Tekrar commit işlemi gerçekleştiriyoruz. Oldukça basit.
Kod:
cat >> .gitignore
istenmeyendosya.py
istenmeyen/dizinler/
git add .
git commit -m ".gitignore eklendi"
git push -u takmaad master
Branchs (Dallar)
Bir proje üzerinde birden fazla yazılımcı çalışıyorsa iş kolaylığı açısından görev dağılımı yapılır ve konular belirlenir, bu konulara göre dallar ayrılır bunlara branchs denir. Herkes kendi branchinde yapması gerekeni yaptıktan sonra proje sonunda dallar birleştirilip tek bir dal haline getirilir bu işleme ise merge denir.
Kod:
#Mevcut dalları görüntülemek için;
git branch
#Dal oluşturmak için;
git branch daladi
#Dallar arası geçiş yapmak için;
git checkout daladi
#2 branch arasındaki farklılıkları görmek için
git diff dal1 dal2
Şimdi bu dalları birleştirelim;
git merge daladi
#Projemize gönderiyoruz.
git push -u takmaad daladi
Readme.md
Projemiz hakkında önbilgi veririz. Böylece insanlar projemizin içine girip bu kodlar neyin nesi demezler. Proje hakkında tanımlamaların yapıldığı kısımdır.
Kod:
# Proje Adı (Tek diez en büyük boyuttur, Diez arttıkça boy küçülür. max6)
## Proje Hakkında Bilgi
**Burası Kalın Metin**
*Burası İtalik Metin*
`Kod ise bu şekilde yazılıyor.`
[Link metni](Bağlantı adresi)
[ame="https://www.youtube.com/watch?v=xjXfg1nN_Ig&feature=youtu.be"]https://www.youtube.com/watch?v=xjXfg1nN_Ig&feature=youtu.be[/ame]
Moderatör tarafında düzenlendi: