github tutorial developers how use github
Bu GitHub Eğitimi, GitHub Nedir ve Depo, Dal ve Çekme İsteği Nasıl Oluşturulacağını Açıklar. Şube Koruma Kurallarını ve Çatışma Çözümü içerir:
GitHub nedir?
GitHub, geliştiricilerin kaynak kodlarını depolamasına ve yönetmesine yardımcı olmanın yanı sıra kaynak kodundaki tüm değişiklikleri izlemesine ve kontrol etmesine yardımcı olan bir bulut hizmetidir.
Basit bir ifadeyle GitHub, projeyi yönetebilecekleri, kaynak kodunu barındırabilecekleri ve bunları da gözden geçirebilecekleri geliştiriciler içindir. Bunların hepsini bu seride keşfedeceğiz.
Bu GitHub Serisindeki Öğreticilerin Listesi:
Öğretici 1: Geliştiriciler İçin GitHub Eğitimi | GitHub Nasıl Kullanılır (Bu Eğitici)
Öğretici # 2: Projeleri Belgelemek İçin GitHub Projeleri, Takımları, Fork ve Wiki
Öğretici 3: Gelişmiş Git Komutları ve GitHub Entegrasyon Eğitimi
Eğitim 4: GitHub REST API Eğitimi - GitHub'da REST API Desteği
Öğretici 5: GitHub Masaüstü Eğitimi - Masaüstünüzden GitHub ile İşbirliği Yapın
Öğretici # 6: TortoiseGit Eğitimi - Sürüm Kontrolü İçin TortoiseGit Nasıl Kullanılır
Ne öğreneceksin:
Git Nedir?
Git, tüm kaynak kodunun geliştiricinin makinesinde mevcut olduğu bir Açık Kaynak sürüm kontrol sistemidir. Git ayrıca dallanma ve birleştirme yapabileceğiniz bir İstemci ve Dağıtılmış Sürüm Kontrol Sistemidir (DVCS).
GitHub'a Başlarken
GitHub ile başlamak için aşağıdaki adımları gerçekleştireceğiz.
- Projeleri düzenlemek için bir Depo oluşturun.
- Şube Oluşturun
- Dosyada değişiklik yapın ve kesin.
- İçeriği birleştirmek için bir Çekme İsteği oluşturun.
- Şubeyi Koru
Dizinin ikinci bölümünde, GitHub'ın Organizasyon Oluşturma, Takımlar, Sorunlar, Dönüm Noktaları, Çatallar, Sürümler ve Wiki gibi diğer özelliklerine de bakacağız.
GitHub Deposu Oluşturun
Bir GitHub Deposu, projenin kaynak kodu, belgeler, resimler vb. Gibi yapıtlarını içerir. Yukarıdaki tüm adımları gerçekleştirmek için bir demo deposu oluşturacak ve kullanacağız.
Github.com'a giriş yapın ve Yeni Bir Depo Oluşturun . Tıkla Yeni buton.
Aşağıdaki repo detaylarını gösterildiği gibi ekleyin ve tıklayın Kod deposu oluştur . Erişimi Özel veya Genel olarak ayarlayın. Bu erişime bağlı birkaç özellik olduğundan, bunu herkese açık hale getirmek daha iyidir.
Not: Depoyu oluşturan kullanıcı GitHub Deposunun sahibidir.
Depo bir README dosyasıyla oluşturulur.
GitHub Deposuna Ortak Çalışanlar Ekleme
Takımın bu arşiv üzerinde çalışmasını isteriz. Bunun için ortak çalışanları arşiv üzerinde çalışmaya davet etmemiz gerekecek. Ortak çalışan eklemek için, Deponun ana sayfasına gidin ve Ayarlar simgesi.
Tıklamak Ortak çalışanlar sol bölmede ve Github hesabı olan ortak çalışanları ekleyin. Bir davet gönderilir ve ortak çalışanların daveti kabul etmesi gerekir.
Ortak çalışanlar aşağıda gösterildiği gibi eklenir. Daha sonra, bu eğiticide Ortak Çalışanların, kodu birleştirmek için oluşturulan çekme isteği için gözden geçiren olarak nasıl ekleneceğini göreceğiz.
Temel C Yapmak ommit
README dosyasını açın ve temel bir işlem gerçekleştirin. Tıkla Simgeyi düzenle dosyayı değiştirmeye başlamak için.
Dosyayı değiştirin, bir yorum ekleyin ve tıklayın Kaydet .
Dosya Github Deposuna kaydedilir (değişiklikler kaydedilir).
Depo içinde klasör ve dosyalar oluşturmak için birkaç işlem görülecektir.
Klasörü ve içinde bir dosya oluşturmak için: Tıkla Yeni dosya oluştur Depo düzeyinde düğmesine basın. Aşağıda gösterildiği gibi dizinin adını ve ardından / ve dosyanın adını yazın.
Tıklamak Kaydet altta. Klasör ve dosya gösterildiği gibi oluşturulur. Böylece, dosyalar ve klasörler usta ana entegrasyon dalı olan ve çoğunlukla yazılım sürümlerinin oluşturulabileceği şube.
Geliştiriciler normalde kendilerine atanan görev üzerinde ayrı bir dalda çalışır ve değişiklikleri ana dalda birleştirir. Örneğin, dallar, özellik geliştirme veya hataları çözmek veya iyileştirmeler üzerinde çalışmak vb. için oluşturulabilir. Böylece, bir dal oluşturarak iş diğer dalları rahatsız etmeden izole edilir.
Bir sonraki adımda, şubelerin nasıl oluşturulabileceğine bakabilir ve kodu ana dalda incelemek ve birleştirmek için çekme talepleri tanımlanabilir.
Dosya Taşıma
Bir dosyayı başka bir klasöre taşımak için aşağıdaki adımları uygulayın. Örneğin, Rules.txt dosyasını bir doc klasörüne taşımak için. Dosyaya tıklayın.
Dosyayı düzenlemek için simgeye tıklayın.
Yolu ekleyin doc / dosyadan önce Rules.txt . Tıklamak Değişiklikleri Gerçekleştirin.
Yol artık güncellenmiştir.
GitHub Şubesi Oluşturma
Deponun ana sayfasına gidin ve bir özellik şube gösterildiği gibi. Tıklamak Şube oluşturun.
Şimdi içindeyiz özellik şube. Dosyalar aynı. Şimdi içindeki dosyalarda bazı değişiklikler yapacağız. özellik dallandırın ve değişiklikleri incelemek ve kodu usta şube.
Özellik dalındaki dosyalarda değişiklik yapın.
Java dosyasını Src klasöründe açın ve biraz kod ekleyin ve değişikliği gerçekleştirin.
GitHub Çekme İsteği Oluşturun
Önceki bölümde bir şube oluşturduk özellik ve bir dosyada bazı değişiklikler yaptı. Değişiklikler usta şube. Bunun için, kullanıcının belirli değişikliklerin gözden geçirilmesini ve içinde birleştirilmesini önerdiği bir Çekme İsteği oluşturmamız gerekir. usta şube.
Çekme İsteği oluşturma, kaynak ve hedef şube arasındaki farkları gösterecek ve varsa çakışmaları çözmek için gerekli olacaktır.
Tıklamak Karşılaştırma ve Çekme İsteği havuzun ana sayfasında.
Her iki daldaki değişikliklerin birleştirilebileceğini görebilirsiniz. Tıklamak Çekme İsteği Oluşturun.
Tıklamak Çekme İsteğini Birleştir ve Onaylamak birleştirmeyi tamamlamak için.
Değişiklikler başarıyla birleştirildi usta şube. İlk Pull talebimiz başarıyla tamamlandı.
Hak Talepleri ve Kod İncelemesi Olan İnceleyenler Atayın
Github, depodaki kaynak kodundan sorumlu kişileri seçebileceğimiz bir CODEOWNERS dosyası kullanma konusunda iyi bir özelliğe sahiptir. Arşiv sahipleri bu dosyayı oluşturabilir ve dosyada tanımlanan tüm kullanıcılar, varsayılan olarak çekme isteği oluşturma sırasında inceleme için istenir.
Bu özelliği kullanmak için GitHub Pro sürümünü kullanmanız veya Depoyu Herkese Açık yapmanız gerekir.
Deponun kök dizininde, bu dosyayı aşağıdaki biçimde oluşturun ve dosyayı teslim edin.
* @ kullanıcıadı veya @orgname veya @teamname
* öncelikle depodaki tüm dosyalar anlamına gelir. Ayrıca * .java veya * .js gibi belirli uzantıları da belirtebilirsiniz. Dosyada tanımlanan kullanıcılara otomatik olarak inceleme isteği gönderilecektir. CODEOWNERS dosyası tanımlandığında, gözden geçirenleri manuel olarak açıkça eklemeye gerek yoktur ve hangi dosyaların inceleneceğini seçme konusunda biraz daha fazla esnekliğe sahiptir.
Geri özellik şube, Java dosyasında küçük bir değişiklik yapar ve bir Çekme İsteği oluşturur. Çekme İsteği ekranında sağ tarafa bir gözden geçiren atayın. Tıklamak Çekme İsteği Oluşturun.
Yukarıdaki ekranda gözden geçirenlerin manuel olarak atanabileceğini, ancak gözden geçirenlerin kod değişikliklerini gözden geçirmek için otomatik olarak bir istek alacak olan CODEOWNERS dosyasında tanımlandığını görebilirsiniz.
Her neyse, şimdilik oturum aç gözden geçiren olarak ve değişiklikleri onaylayın. Değişiklikleri onaylamak için vniranjan2512 kullanıcısı olarak oturum açın.
Değişiklikleri Onaylamak / Reddetmek için bir istek var. Çekme İsteği.
Çekme İsteğine tıklayın ve Yorum yaz.
Tıklayabilirsiniz + açılan ekranda Eklenen / Değiştirilen / Silinen kod satırı için inceleme yorumlarını imzalayın ve ekleyin.
Tıklamak Bir İnceleme Başlatın.
Tıklamak İncelemenizi tamamlayın. Gösterildiği gibi onaylayın ve İnceleme Gönder .
Bir çekme isteği gönderen asıl kullanıcı olarak geri döndüğünüzde, bir yorum ekleyebilir ve konuşmayı çözebilir veya kapatabilirsiniz.
Birleştirme çekme isteği artık tamamlanabilir.
Değişiklikler başarıyla birleştirildi usta şube incelemeyi yayınlar ve çekme talebini birleştirir.
Yani, bu aşamada özetlemek gerekirse, geliştiricilerin özellik dallandırın ve ardından değişiklikleri birleştirmek için bir Çekme İsteği oluşturun usta şube. Yukarıdakiler, çatışmaların olmadığı bir senaryoydu. Bir sonraki bölümde, dosyalar birden çok dalda değiştirilirse çakışmaları manuel olarak çözmenin yollarını göreceğiz.
Anlaşmazlıkları Çözme
Birden fazla daldaki aynı dosyaların değiştirilmesi olasıdır. Bu durumda, çatışmalar olabilir ve ortaya çıkan Çekme İsteği aracılığıyla çözülmesi gerekir.
Örneğin, Java dosyasında hem usta ve özellik dallar ve bir çekme isteği oluşturun.
Gösterilen çekme talebi mesajı, değişikliklerin otomatik olarak birleştirilemeyeceğidir. Dolayısıyla çatışmaların çözülmesi gerekiyor. Bir Çekme İsteği oluşturmaya devam edin.
Çekme İsteği oluşturulduktan sonra, çatışmaların şu seçeneğe tıklayarak çözülmesi gerekecektir. Çatışmaları çözün buton.
Esasen çatışmaları manuel olarak çözen işaretleri kaldırın ve Çözüldü olarak işaretle ve Birleştirme işlemi gerçekleştirin.
İşaretler kaldırıldıktan sonra dosyanın son görünümü.
Birleştirme çekme isteği tamamlanabilir. usta ve özellik şubeler artık aynı olacak.
Yine de yukarıdaki ekranda İnceleme'nin talep edildiğini ancak zorunlu olmadığını görebilirsiniz. Bir sonraki bölümde, arşiv sahibinin zorunlu olarak bir inceleme talebinde bulunabileceği ve aynı zamanda koruma altına alabileceği Şube koruma kurallarını göreceğiz. usta doğrudan taahhütte bulunmaktan ancak yalnızca bir çekme isteği yoluyla dallanma.
Şube Koruma Kuralları
Önceki bölümlerde, Github Pull Taleplerini gördük ve ayrıca zorunlu veya isteğe bağlı olmayan incelemeler talep ettik. Tipik proje senaryoları kodunda, incelemeler bir zorunluluktur ve geliştirme sürecinin bir parçasıdır.
Bunu nasıl uygulayacağımızı görelim.
Github.com'da bu özellik yalnızca herkese açık depolar için veya Github pro sürümü kullanılarak ayarlanabilir. Deponun ana sayfasında şu adrese gidin: Ayarlar ve tıklayın Şubeler soldaki kategori.
Tıklamak Kural ekle altında Şube koruma kuralları. Kural, kod sahiplerinden zorunlu çekme talebi incelemeleri için istekleri ekledi. usta şube.
Bu aynı zamanda ana şube koruma altındadır ve bu şubede hiçbir doğrudan taahhütte bulunulamaz ve yalnızca kapsamlı bir incelemeden sonra Çekme Talepleri aracılığıyla gerçekleştirilebilir. Bu ayar, arşiv sahibi tarafından belirlenir.
Gerçekten Harika Bir Özellik !!!
Tıklamak Oluşturmak bir kez yapıldı. Bu senaryoyu test etmek için, şu dosyadaki bir dosyada değişiklik yapın. özellik dallanma ve bir çekme isteği oluşturun.
Aşağıdaki ekran, kod sahipleri tarafından zorunlu olarak bir inceleme yapılması gerektiğini göstermektedir.
İncelemeyi Kod Sahiplerinden yayınlayın, çekme isteği birleştirilebilir.
Deponun ortak çalışanı olarak, oluşturulan korumalı dalların kuralları nedeniyle dosyalardan herhangi birinde değişiklik yaparsanız, gösterildiği gibi bir şube oluşturduktan sonra doğrudan ana dala taahhüt edemezsiniz, ancak yalnızca bir Çekme İsteği yoluyla taahhütte bulunabilirsiniz altında.
Bir Depoyu Başka Bir Kullanıcı Hesabına Aktarma
Normalde, kişisel bir kullanıcı havuzunun tek bir sahibi vardır ve diğerlerinin tümü ortak çalışanlardır. Yani, bir anlamda, bir kullanıcı hesabı havuzunda birden fazla sahip olamaz. Ancak mülkiyet başka bir kullanıcı hesabına aktarılabilir. İşlem tamamlandığında, orijinal arşiv sahibi otomatik olarak yeni kullanıcı hesabı havuzunda ortak çalışan olur.
Yeni sahip daha sonra yapıyı, sorunları, çekme isteklerini, projeleri, sürümleri ve ayarları yönetmeye başlayabilir.
Normalde yerel depoda 'git clone' veya 'git push' gibi komutlar gerçekleştirildiğinde, komutlar yeni depoya yönlendirilir. Ancak 'git remote -v' komutunu çalıştırdığınızda, yine de orijinal depo URL'sini gösterecektir. Yeni uzak URL'ye geçme karmaşasını önlemek için, 'git remote set-url' komutunu kullanarak havuzun transferini gönderin.
Bir arşivi aktarmak için arşivin Ayarlar sekmesine gidin ve Seçenekler? Danger Zone tıklayın Aktar
Depo adını ve sahipliğin aktarılması gereken yeni kullanıcı hesabını girin.
Anlıyorum, bu depoyu aktar'a tıklayın
Deponun yeni sahibe aktarıldığına dair bir mesaj görmelisiniz.
Aktarımı onaylaması için orijinal arşiv sahibine bir posta gönderilecektir. Aktarım onaylandıktan sonra, arşiv yeni sahibe aktarılacak ve orijinal arşiv sahibi ortak çalışan olarak eklenecektir.
Şimdi, eski deponun klonlandığı makinede yeni depo URL'sini ayarlayın. Eski deponun klonlandığı tüm makinelerde aşağıdaki komutların ayarlanması gerekir.
Tüm çekme istekleri, sorunlar, wiki aktarılacaktır. Sorun atamaları olduğu gibi kalacaktır.
Bazı Kullanışlı Git Komutları
Git istemcisi Linux veya Windows makinenize kurulduktan sonra başlangıçta yerel makinenizde yapılandırılacak temel Git komutlarından bazıları vardır. Geliştiriciler, GitHub'daki depoya bağlantı olmadan, GitHub'da bulunan kaynak kodun tam kopyası üzerinde yerel olarak çalışır ve onunla senkronize olur.
İlk olarak, yaptığınız tüm taahhütlerin bu bilgileri kullandığından emin olmak için kullanıcı adınızı ve e-posta adresinizi ayarlayın.
git config –global user.name 'KullanıcıAdı'
git config –global user.email “myemail@myemail.com”
Kaydetme sırasında bir mesaj eklemeniz gerektiğinde, bunun için gerekli olan düzenleyiciyi de yapılandırabilirsiniz.
kök neden analizi örnekleri yazılım geliştirme
git config –global core.editor not defteri
Tüm konfigürasyon değerlerinin bir listesini alın.
git config –listesi
Bazen kuruluşların internete bağlanmak için proxy sunucuları vardır. Bu durumda, GitHub'daki tüm depolara erişmek için bir proxy sunucusu ve bağlantı noktası numarası belirtmeniz gerekecektir.
git config –global http.proxyhttp: // Kullanıcı adı: Parola @ proxyserver: bağlantı noktası
Depoyu klonlayın veya yerel bir kopyasını oluşturun. GitHub'da deponun klon URL'sini alın ve git komutunu çalıştırın.
Sonuç
Bu öğreticide, bir geliştiricinin GitHub üzerinde doğrudan GitHub Deposu Oluşturma, Dal, Çekme İsteği, Bir dalı koruma ve bazı temel Git komutlarından nasıl başlayabileceğini gördük.
Yaklaşan eğitimimizde, GitHub'ın diğer özelliklerini, esas olarak kuruluşların, ekiplerin nasıl oluşturulacağına, bir havuzun nasıl çatallanacağına, sorunların nasıl oluşturulacağına, dönüm noktalarının nasıl oluşturulacağına ve çekme istekleri, wiki'ler ve bunların kullanımları ve faydalı olacak diğer birkaç gelişmiş Git komutuyla nasıl ilişkilendirileceğini göreceğiz. geliştiricilere.
Önerilen Kaynaklar
- Örneklerle Java Yansıtma Eğitimi
- Git ve GitHub: Farklılıkları Örneklerle Keşfedin
- Örneklerle Python DateTime Eğitimi
- Eclipse Kullanarak GitHub ile Selenyum Entegrasyonu
- İstek ve Yanıt Verilerini Bir Dosyada Saklamak İçin Hızlı Bir SoapUI Kılavuzu - SoapUI Eğitimi # 15
- Bugzilla Eğitimi: Hata Yönetimi Aracı Uygulamalı Eğitimi
- Yeni Başlayanlar İçin 20+ MongoDB Eğitimi: Ücretsiz MongoDB Kursu
- Örnek ile MongoDB Parçalama Eğitimi