Nedir bu Git? Git Ne İşe Yarar?
Git Nedir? Git ile Github aynı şey mi?
Git, büyüklüğü veya küçüklüğü fark etmeksizin, projelerimizi geliştirirken bize hız katacak ve verimliliği en üst düzeye çıkarmamızda yardımcı olacak, açık kaynaklı bir sürüm kontrol sistemidir.
Github ise sürüm kontrol sistemi olarak Git kullanan projeler için web tabanlı bir depolama servisidir. Yani Git, bir sürüm kontrol sistemidir, Github ise, Git kullanan projeler için bir depolama servisidir. Yani Git proje nakliyecisi, Github da proje deposudur.
Peki Sürüm Kontrol Sistemi Nedir? Sürüm kontrol sisteminin ne önemi var? Sürüm kontrol sistemi neden lazım? Sürüm kontrolüne ne ihtiyacımız var? gibi sorular akla geliyordur elbette.
Sürüm kontrol sistemleri belli sürümleri hafızasında tutup, daha sonra hatırlayabilmeniz için sabırsızca bekleyen sistemlerdir. Başlangıçta ihtiyacımız yok gibi görünen bu yaklaşım aslında projenin sağlığı açıdan oldukça önemlidir. Projemize ne kadar hakim olursak olalım hangi aşamada neyi yaptığımızı aklımızda tutmamız neredeyse imkansız, çünkü projeler genelde pek çok işi yaptıklarından aynı anda yazmak yerine belli aşamalara ayırarak geliştirme yaparız. Bunun yanısıra, en önemli başka yanı ise eğer projede birden fazla geliştirici varsa geliştiricilerin aynı anda projede çalışmasını sağlamak ve geliştiricilerin birbirlerinin geliştirdiği alanları takip edebilmesi açısından büyük kolaylık sağlar.
Nasıl Git kullanırım?
Burada Git nasıl kullanılır, nasıl Git kurarım, Git ile sürüm kontrolü nasıl yapılır bunlara değinelim.
Git’i kullanabilmek için kurulum gerekmektedir. Kurulum için Mac OS X sistemlerde Terminal’i açıp
brew install git — Mac OS X
sudo apt-get install git — Linux
komutunu kullanarak yükleyebilirsiniz. Windows’ta Git kullanmak için ise indirip yüklemeniz gerekmektedir.
Temel Git Komutları
- Terminal üzerinden Homebrew kullanarak Git yüklemek için
➜ ~brew install git - Hangi Git versiyonunu kullandığımızı görmek için
➜ ~ git --version - Git kullanıcı adı veya Git e-mail adresinizi düzenlemek için
➜ ~ git config — global user.name “testuser”
➜ ~ git config — global user.email “test@mail.com” - Oluşturulmuş dosyanın oluşturmak için
➜ ~ git init - Git üzerinden proje dosyası açmak için
➜ ~ git init project_name - Git projesinde kaydedilen sürümleri listelemek için
➜ ~ git log - Projemizde herhangi bir değişiklik oldu mu, kontrol etmek için
➜ ~ git status - Uzak bir dizine bağlanmak için
➜ ~ git remote - Projede yaptığımız geliştirmeleri eklemek için
➜ ~ git add - Projemiz üzerinde yaptığımız değişiklikleri depoya gönderebilmek için
➜ ~ git push - Projede yapılan değişikliği kendi yerel projemize almak için
➜ ~ git pull - Kayıtlı değişiklikleri almak için
➜ ~ git fetch - Var olan bir projeyi kopyalamak istersek
➜ ~ git clone
komutlarını kullanıyoruz. Hepsini bir arada kullanabileceğimiz bir örnek yapalım dersek aşağıdaki gibi olması gerekecektir;
Boş bir proje dosyası açarak bu proje dizinine gitmek için aşağıdaki şekilde ilerlemek gerekiyor.
Projeme boş bir Text dosyası ekleyip git status ile durumumu kontrol ediyorum.
Projemde bazı değişiklikler olmuş ancak henüz projeye eklenmemiş. Dosyayı projeye ekleyelim ve tekrardan bir durum kontrolü yapalım.
Projede ekli olmayan dosyayı projeye ekledik, şimdi sıra geldi dosyamızı işlemeye. Daha sonrasında değişikliği proje deposuna gönderelim.
git commit -m ‘ilk commitim, bu da mesajım’ şeklinde işledik, burada “-m” kullanarak işlediğimiz dosyanın ne işe yaradığını kısa bir özet geçebiliriz.
Projeyi gönderdiğimizde ise bir hata aldık, neden? Çünkü projemizi depolayacağımız herhangi bir alan göstermedik.
Daha önceden Github’da oluşturduğum proje dizinini ortak dizin olarak belirleyip projemi oraya göndermek istedim.
Bunun için git remote add origin ‘deponun adresi’ kullanarak dizini belirttim ve bu şekilde değişiklikleri gönderdim.
Başka bir yerde projeyi depodan çekmek istediğimde aşağıdaki şekilde adresi bulup git clone “adres” komutunu çalıştırıyorum.
Projede başkasının yaptığı değişiklikleri kendi projeme de eklemek için git pull origin master komutunu kullanarak alabiliyorum.
Bu şekilde komutları kullanabilir, projemizi daha takip edilebilir hale getirebiliriz.