GitHub Forks'umu güncel tutmak


Önceki bir gönderide, Update-AzureRM komutunu yalnızca güncelleme yapmak üzere ne zaman güncellediğimi yazmıştım. Daha yeni bir sürümü bulunan ve halihazırda güncel olan modülleri indirip üzerine yazmayan modüller. Tabii ki -Force parametresini kullanmadığım sürece.

Değişikliği yaptıktan ve tatmin olduktan sonra, belki bir başkasının bu güncellemeden faydalanabileceğini düşündüm ve AzureRM modülü GitHub'da açık kaynaklı bir proje olarak mevcut olduğundan, değişikliklerimin modülün resmi sürümüne dahil edilmesini talep ettim. Ben bu şekilde yaptım.

Aşağıdaki adımları gerçekleştirmek için GitHub 'de bir hesabınızın olması ve yüklü bir git istemcisinin olması gerekir . Bunu başarmanın en hızlı yolu yeni bir hesap kaydetmek ve şu adresten “GitHub for Desktop”ı yüklemektir: https://desktop.github.com/ Ayrıca bazı temel git bilgisi gerektirir; giriş için Youtube.

Şimdi hemen dalalım!

Fork - Deponun kendi kopyasını oluşturmak

GitHub'da yazma erişimimin olmadığı bir depoya katkıda bulunmak istediğimde yapmam gereken ilk şey, GitHub hesabımda deponun bir kopyasını oluşturmaktır. Böyle bir kopyaya Çatal denir. Benim durumumda GitHub'daki (https://github.com/Azure/azure-powershell) Azure-PowerShell projesine göz attım ve ekranın sağ üst köşesindeki Çatal düğmesine tıkladım:

Çatal butonuna tıklamak hesabımda deponun bir kopyasını oluşturacak ve beni bu kopyaya götürecektir.

Klon - Bir kopyasını indirme

Projenin değişiklik yapabileceğim kendi kopyasına sahip olduğumda, projeyi yerel makineme indirmem gerekiyor. Bir havuzun kopyasını indirme işlemine Klon adı verilir. Bir depoyu klonlamak için önce klonlanacak URL'yi bulmam gerekiyor. Bu, sayfanın üst kısmındaki bir metin kutusunda bir pano düğmesiyle birlikte bulunabilir. Metni işaretlemek için düğmeye bir kez, panoya kopyalamak için bir kez daha tıklayın.

URL'yi panomda bulduğumda Git Shell'i açıyorum ve modülün indirilmesini istediğim klasöre gidiyorum. Daha sonra şunu yazarak depoyu klonlarım:

git clone https://github.com/SimonWahlin/azure-powershell.git

Yukarı akış ekle - Orijinal depodan güncellemeleri alın

Artık çatalımın yerel bir kopyasına sahip olduğumda kopyamın orijinal depoyla güncel kaldığından emin olmak istiyorum. Bir şey üzerinde daha uzun süre çalışmayı planlıyorsam bu daha da önemli ama bunu iyi bir alışkanlık haline getirmeye çalışıyorum. Güncellemeleri orijinal depodan alabildiğimden emin olmak için yerel klonumu orijinal depoya bağlamam gerekiyor. Bunu yapmak için yerel depoma uzaktan kumanda adı verilen bir şey ekliyorum. Şu anda yapılandırılmış olan tüm uzaktan kumandaları aşağıdaki komutu çalıştırarak görüntüleyebilirim:

git remote -v

Bu komutu çalıştırmak bana hem getirme hem de çekme için ayarlanmış Origin adında bir uzaktan kumandamın olduğunu gösteriyor. Origin, klonladığım depo için kullanılan varsayılan addır (bu durumda GitHub'daki çatalım). Şimdi başka bir uzaktan kumanda eklemek istiyorum ve o uzaktan kumandayı yukarı akış olarak çağıracağım. Bunu yapmak için URL'yi orijinal depoya almam ve bu URL'yi uzak olarak eklemek için bu komutu kullanmam gerekiyor:

git remote add upstream https://github.com/Azure/azure-powershell.git

Yerel kopyamı güncelle

Depomun yerel kopyasında (makinemdeki kopya) artık iki bağlantı (uzaktan kumanda) var. Biri GitHub hesabımdaki Origin adı verilen kopyaya, diğeri GitHub'daki orijinal sürüme atıfta bulunuyor. Orijinal sürümde yapılan güncellemeleri indirmek için fetch komutunu kullanıyorum ve ona upstream adlı uzaktan kumandadan getirilmesini söylüyorum.

git fetch upstream

Bu, bilgisayarımın uzaktan kumandayla ilgili sahip olduğu bilgileri güncelleyecek ancak yerel kopyamla hiçbir şey yapmayacak. Artık yerel kopyam ile yukarı akış uzaktan kumandası arasındaki değişiklikleri git diff kullanarak karşılaştırabilirim.

git diff upstream/dev

Git diff, dosyalar arasındaki farkı karşılaştırmak için kullanılır ve varsayılan olarak linux'taki "daha az"a çok benzeyen bir metin görüntüleyici açar. Burada metinde gezinmek için ok tuşlarını ve PageUp/PageDown'u kullanabilirim ve çıkmak için 'q' tuşuna basabilirim. Tam yardım için arama gibi daha gelişmiş işlemleri de yapabilirim, 'h' tuşuna basın. Örneğin, dosya yolunu önceki komuta ekleyerek tek bir dosyadaki değişiklikleri görmek istersem bunu yapmak kolaydır.

git diff upstream/dev .toolsAzureRMAzureRM.psd1

Yukarı akış uzaktan kumandasını yerel depomla karşılaştırmayı bitirdikten sonra, birleştirme komutunu kullanarak tüm değişiklikleri yukarı akıştan geçerli şubeme getirebilirim.

git merge upstream/dev

GitHub'daki kopyamı güncelle

Artık yerel depom menşeimin (GitHub'daki kopyam) ilerisinde olmalı. Yeni güncellemeleri (varsa) GitHub'daki kopyama göndermek için sadece bir itme yapıyorum.

git push origin

Eğer Origin varsayılan uzaktan kumandamsa, burada isim vermeme gerek yok, ancak sanırım nereye basmak istediğim konusunda daha net olmanın zararı olmaz. Çatallarımı güncel tutmak için kullandığım süreç bu. Başka bir şekilde yaparsanız lütfen yorum bırakmaktan çekinmeyin.

İlgili makaleler