Yeni Bir Repo
Gerçekten remote server kullanmak yerine şimdilik remote server’ı taklit etmek için bilgisayarımızda yeni bir repo oluşturabiliriz.
- Yazının önceki bölümünde myrepo isminde bir klasör oluşturmuştuk. Aynı düzeyde localrepo isminde bir klasör daha oluşturalım ve parent klasörde aşağıdaki komutu çalıştırarak repoyu kopyalayım. Klasör yapımız resimdeki gibi olmalı.
git clone ./myrepo ./localrepo
Böylece aynı bilgisayarda olsak dahi remote ve local repo’larımızı oluşturduk. myrepo burda remote gibi davranıyor çünkü localrepo ondan k

- Klonladığımız için remote repo’yu ayarlamamıza gerek yok. localrepo’nun remotunu aşağıdaki komutla görebiliriz. Komutu ./localrepo içinde çalıştırmamız gerekiyor.
cd ./localrepo
git remote -v

localrepo, myrepo’yu remote reposu olarak (origin) görüyor. fetch ve push adreslerinden bunu anlayabiliyoruz. Local adres yerine http://remote-server.com/myrepo gibi bir adres de olabilirdi.
Remote Repo’daki Değişikleri Local’e Çekme
Remote repo genelde birçok yazılımcının üzerinde çalıştığı ana repodur. Diğer kişiler yaptıkları değişikleri remote repoya gönderirler ve onların çalışmalarının görmek için biz de remote üzerindeki kodları local repomuza indiririz. Şimdi bir örnekle inceleyelim.
- Diyelim ki remote repoda bir değişiklik yapıldı. Önce bunu simule edelim. myterepo/program.txt içindeki yer alan print(“merhaba dünya”) metnini print(“selam, ben başka bir yazılımcı”) olarak değiştirelim.
- Değişikliği git add . ardından git commit -m “merhaba, selam olarak düzenlendi.” ile commitleyelim.
- Şu anda myrepo’da yani remote repomuzda bir değişiklik meydana geldi. Ancak localrepo’muzun bundan haberi yok. git log ile bunu görebiliriz. Haberi almamız için aşağıdaki komutu kullanalım.
git log
git fetch
git log --all

Görüldüğü gibi fetchden önce localrepomuzun origin tarafından yapılan değişiklikten haberi yok. origin/master’ı halen “merhaba dünya” commit sanıyor.

Fetch’ten sonra artık origin tarafında yeni bir commit olduğunu öğrendi. –all kullanmamızın sebebi git log’un sadece mevcut branch’i göstermesi. –all diyerek tüm dallanmaları görüyoruz.
- Şimdi localrepo’muza myrepo’dan yani originden kodları çekelim. Bu noktada localrepo’da bir değişiklik yapmadığımız için bir sorun olmayacak. Değişiklik yaptığımız senaryoyu daha sonra inceleyeceğiz. Aşağıdaki komutu çalıştıralım.
git pull
Artık localrepo’muz origin ile eşitlendi. Çalışma alanındaki program.txt de yeni versiyona geçtiğimiz için otomatik olarak değişti.