Developersland

Teknoloji ve Yazılım Blogu

  • Yazıtipi boyutunu arttır
  • Varsayılan yazıtipi boyutu
  • Yazıtipi boyutunu azaltır
Versiyon Kontrol Sistemleri

GIT Commit yapmış tüm kişileri görmek

Bunun için ağağıdaki komutu kullanmanız yeterlidir.

git shortlog -s

 

Git Uzak Sunucuyla ilgili Bilgilerin İncelenmesi

git remote show [remote-name]  komutunu kullanarak sunucudaki depo ile ilgili bilgilere erişebilirsiniz. Aşağıda örnek komut ve çıktısı gösterilmiştir.

git remote show origin

* remote origin
  Fetch URL: https://github.com/feridmovsumov/progit.git
  Push  URL: https://github.com/feridmovsumov/progit.git
  HEAD branch: master
  Remote branches:
    master  tracked
    patch-1 tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

Uzaktaki sunucuya varsayılan olarak atanan isim origindir. Eğer bu ismi değiştirmek isterseniz aşağıdaki gibi bir komut yazmanız gerekecektir. Bu komut ile origin ismini ferid yapmış olursunuz.

git remote rename origin ferid 
 

Git Pull, Push, Fetch ve Clone Komutları


git remote -v komutunu kullanarak projenizin bulunduğu uzak sunucunun url adresini görebilirsiniz. Git remote komutunu -v parametresi olmadan kullanırsanız size sadece uzak sunucuya atanan isim gösterilecektir bu isim varsayılan olarak origin dir.


 

Git Değişiklikleri Geri Alma


Bazen yaptığınız değişiklikleri geri alma gereksinimi duyarız. Yapılan değişiklikleri geri almak için bu bölümde anlatılan yöntemleri uygulamanız gerekmektedir. Burada dikkatli olmanız gerekmektedir çünkü yanlış bir işlem yaptığınızda geri alınamayacak veri kayıpları yaşayabilirsiniz.

En yaygın geri alma yöntemlerinden bir tanesi commit komutunun yanında –amend parametresini kullanmaktır. Eğer son yaptığınız commitde bazı belgeleri eklemeyi unutmuş veya commit mesajınızı değiştirmek istiyorsanız bu parametre size yardımcı olacaktır.

Eğer commit yaptıktan hemen sonra –amend parametresiyle tekrar commit yaparsanız sadece commit mesajını değiştirirsiniz.

 

GIT Versiyon Kontrol Sistemi | Değişiklik Geçmişinin İncelenmesi


git logoDeğişikli geçmişini incelemek için git log komutunu kullanmanız gerekmektedir. Git log komutunu yalın bir şekilde kullanırsanız size değişikli geçmişiyle ilgili gösterilebilecek her türlü bilgi gösterilecektir. Burada bir kaç ek parametre kullanarak çıktıları farklı amaçlarla özelleştirebiliriz. Bu ek parametreleri bir liste olarak anlatmaya çalışacağım.


-p : Bu ek parametre sayesinde commitlerde sadece yapılan değişiklikleri görüntüleyebiliriz. Kod yorumlama işlemi sırasında oldukça faydalı bir komuttur ayrıca bir rakam yardımıyla belli sayıda commiti inceleyebiliriz örneğin 

$ git log -p -2 


--pretty : Bu hayatı kolaylaştıran özellikler sunan bir diğer parametredir. oneline, short, full, fuller şeklinde değerler alabilmektedir. Bu ek parametre sayesinde her commit ile ilgili yorumların gösterilmesini sağlarız. Ek değerler yorumların ne kadar uzun olmasını belirtmek amacıyla kullanılır.. Aşağıda örnek komut gösterilmiştir. 

 

Git Versiyon Kontrol Sistemi | Temel Komutlar

git logo

Daha önceki yazılarda git versiyon kontrol sisteminde belgelerin 3 farklı aşamada olabileceğinden bahsetmiştim bunlar unmodified, modified ve staged aşamalarıdır. Bir belgenin o anda hangi aşamada olduğunu öğrenmek için aşağıdaki komutu kullanabiğliriz. Komut sayesinde git bize gerekli bilgileri sunacaktır.

 

GIT Versiyon Kontrol Sistemi | Yeni proje oluşturmak ve var olan projeyi çekmek

Git Logo

Eğer var olan bir projede git versiyon kontrol sistemini kullanmanız gerekiyor ise öncelikle konsoldan projenizin olduğu dizine gelerek aşağıdaki komutu giriniz.

$ git init 

Böylece projenizin bulunduğu dizinde .git isimli bir klasör oluşacaktır. Git kendi çalışması için gereken bütün bilgileri burada saklar.

Git ile yönetmek istediğiniz bütün proje dosyalarını git'e eklemeniz gerekir bunun için aşağıdakilere benzer komutlar kullanmanız gerekmektedir.

$ git add *.php //Bu komut ile bütün .php uzantılı dosyaları eklemiş olduk 

$ git add README //README dosyamızı ekledik

$ git commit -m 'initial project version'//Projemizi commit ettik

Böylece artık bilgisayarınızda bir git deposu (repository) oluşmuş oldu. Ancak şu anda herhangi uzak bir sunucuyla ilgili bir işlem gerçekleştirmedik tamamen yerel (local) ortamda çalışıyoruz buna dikkat edelim.

 

GIT Versiyon Kontrol Sistemi - Başlangıç


gitBu yazımda en popüler versiyon kontrol sistemlerinden biri olan GİT ile ilgili aldığım notları paylaşacağım.

-Git daha verimli çalışma için daha önce oluşturulmuş ve değişiklik yapılmamış olan belgeleri yeniden kaydetmez. Bunun yerine daha önce kaydedilmiş olan belgeye link oluşturur. Bu özellik Git versiyon kontrol sistemini diğerlerinden ayıran en önemli farktır.

-Git'in hızlı çalışması birçok işlemi localde gerçekleştirmesi sayesinde mümkün olmaktadır.Bütün değişiklik tarihi bilgisayarınızda tutulduğu için işlemler çok hızlı yapılabilmektedir.Örneğin projenin geçmişi ile ilgili bilgilere erişmek istediğinizde git uzak sunucuya giderek herhangi bilgi çekme gereksinimi duymaz ve gerekli bilgileri zaten makinenizde barındırdığından anında size sunar. Git'in local bazlı çalışması sayesinde offline olduğunuz durumlarda diğer versiyon kontrol sistemlerinin aksine yapamayacağınız çok az şey oluyor. 

-Git herhangi bir bilginin kendi kontrolü dışında değiştirildiğini anında tespit eden bir mekanizmaya sahiptir. Git'in kullandığı bu mekanizma "SHA-1 hash" olarak adlandırılmaktadır. Her bir belge ve projenin dosya yapısına karşılık gelen 40 karakterden oluşan bir string oluşturulmaktadır. Bu sayede git kendi bilgisi dışında yapılan değişiklikleri anında algılar.

 

Git staged ne demek


Git kullanırken belgelerimiz 3 aşamadan birinde olur. Bunlar "committed", "modified" veya "staged" aşamalarıdır.

 Commited: Belgenin başarılı bir şekilde değiştirildiğini ve local veritabanına kaydedildiğini belirtir.

 Modified: Belgeyi değiştirdiğiniz ancak henüz commit etmediğiniz aşamadır.,

 Staged:   İki farklı belge üzerinde çalıştığımızı varsayalım. Bir belgede yapmayı planladığımız bütün değişiklikleri o gün içerisinde tamamlıyoruz diğer  belgede başladığımız işi ise tam olarak tamamlayamadan commit yapmak istiyoruz. Bu durumda henüz tamamlanmamış olan belgemizi commit etmek  yerine onu staged olarak işaretliyoruz ve commit yaptığımızda sadece işimizi tamamladığımız belgenin commit edilmesini sağlamış oluyoruz.