advanced git commands
Bu Eğitimde Git Stash, Git Reset, Git Cherry Pick, Git Bisect gibi Yararlı Git Komutlarını Keşfediyor ve GitHub'ın Jira ile Nasıl Entegre Edileceğini Açıklıyor:
Bu dizideki önceki eğitimlerimizde GitHub'ın özelliklerinin çoğunu gördük.
Bu eğitimde aşağıdakilere bakacağız:
- Sürümler Oluşturma
- Atlassian Jira ile entegrasyon
- Geliştiriciler için en sık kullanılan Git komutları
- Git Stash
- Git Cherry Pick
- Git Sıfırla
- Git Bisect
=> GitHub Kılavuzuna Buradan Bir Göz Atın.
işaretçilerin sırası c ++
Ne öğreneceksin:
- Sürümler Oluşturma
- Jira ile GitHub Entegrasyonu
- Geliştiriciler İçin Gelişmiş Git Komutları
- Sonuç
- Önerilen Kaynaklar
Sürümler Oluşturma
GitHub'daki sürümler, yazılımınızı paketlemek, müşterilerin ve kişilerin bunları kullanması için sürüm notları ve ikili dosyalar (WAR, EAR, JAR dosyaları) eklemek için kullanılır.
Bir Sürüm oluşturmak için, arşivin ana sayfasına gidin ve Salıverme altında sekme Konuları yönetin.
Tıklamak Yeni Bir Sürüm Oluşturun.
Bir Etiket ve Yayın başlığı sağlayın. İkililer de sürüme eklenir. Bittiğinde tıklayın Yayını Yayınla.
Sürüm artık kaynak kodu ve ikili dosyalar ile hazırdır.
Jira ile GitHub Entegrasyonu
Önemli izlenebilirlik yönlerinden biri, GitHub'daki işlemlerle Jira sorununa başvurmaktır. GitHub, yalnızca soruna referans vermek için değil, aynı zamanda Jira içinden dallar ve Çekme İsteği oluşturmaya yardımcı olmak için Jira ile entegre edilebilir.
Bu nedenle tipik olarak, geliştirici görev veya hatalar üzerinde çalışmaya başladığında, kendisi tarafından bir şube oluşturulur. Geliştirmeyi yayınlayın veya hataları gidermek için Jira'dan ana ile birleştirmek için bir çekme talebi oluşturulabilir usta şube. Geliştirici tarafından oluşturulan şube daha sonra silinebilir.
Entegrasyonu kurmak için bir eklenti kullandık Jira için Git Entegrasyonu. Bu ticari bir eklentidir. Eklenti şuradan indirilebilir: İşte
Eklentiyi Jira'ya şuradan yükleyin: Yönetici -> Eklentiler.
Eklenti yüklendikten sonra şu adrese gidin: Uygulama -> Git Depoları ve GitHub'a bağlanın.
GitHub kullanıcı adını ve şifresini girin. Tıklayın Bağlan .
Kullanıcı hesabı için belirtilen havuzlar görüntülenecektir. Tıklamak Kod Depolarını İçe Aktar entegrasyon kurulumunu bitirmek için.
Jira Sorunu ile GitHub Commit
Kaydetme mesajının bir parçası olarak aşağıda gösterildiği gibi girin. Tıklamak Değişiklikleri Kaydet .
Örnek 1: Aşağıda bir örnek Smart Commit Bu, geliştiricilerin kesin mesajından Jira sorunları üzerinde eylemler gerçekleştirmesine olanak tanır. Böyle bir komut, #yorum Yap Aşağıda gösterildiği gibi Jira sorununa yorum ekleyen Sorun anahtarı ile birlikte.
Yorumlar bölümü güncellendi.
Örnek 2: Bir kullanıcıya atayın ve 4 saat harcanan zamanı güncelleyin.
Kullan #atamak ve #zaman commit mesajında smart commit komutu.
Her iki eylem de tamamlandı.
Örnek 3: Sorunun durumunu şu şekilde değiştirin: Devam etmekte .
Şube Oluşturun
Geliştiricilere görevler ve hatalar atandıkça, geliştirme üzerinde çalışmaya başlamaları gerekir. Bunun için üzerinde çalıştıkları konu için bir şube oluştururlar, geliştirme faaliyetlerini yaparlar ve ana dalda birleştirmek için bir çekme isteği oluştururlar.
En alttaki Jira konusunda tıklayın Şube Oluşturun.
Tıklamak Şube oluşturun.
GitHub'da, yukarıda oluşturulan daldaki dosyada bir değişiklik yapın ve aynısını uygulayın.
Geliştirme tamamlandığında, kullanıcı Jira'dan bir Çekme İsteği gönderebilir.
Sorunun altında tıklayın Çekme İsteği Oluşturun.
Tıklamak Oluşturmak. Çekme İsteği Açık olarak gösterilecektir.
Sonraki adım, çekme isteğini GitHub'da birleştirmektir.
Durum buna göre Jira'da güncellenir.
Geliştiriciler İçin Gelişmiş Git Komutları
Bu son bölümde, geliştiriciler için yaygın olarak kullanılan Git komutlarından bazılarına bakacağız. GitHub ile yapacak bir şey yok, ancak değişiklikleri GitHub'a göndermeden önce geliştiricilere yardımcı olacak.
Git Stash
Proje senaryolarının çoğunda, yeni bir özellik veya geliştirme üzerinde çalışırken, aniden, rapor edilen ve bir gösteri durdurucu olan acil bir kusur üzerinde çalışmanız gerekebilir. Yeni çalışmanızın ortasına geldiğiniz ve tamamlamadığınız için, yarısı yapılan değişiklikleri yapmanın bir anlamı yoktur.
Bu nedenle, yarım yapılan işi geçici olarak askıya almak veya kaydetmek, hata üzerinde çalışmak ve yeni özellik veya geliştirme üzerinde çalışmaya geri dönmek daha iyidir. Git stash buna bir çözüm sağlar. Hızlı bir şekilde değişiklik yapma bağlamını kolayca değiştirebilirsiniz.
örnek 1 :Size atanmış bir görev üzerinde çalıştığınızı varsayın ve duruma baktığınızda, şu an itibariyle izlenemediğini gösteriyor.
Aniden size atanmış yüksek öncelikli bir hata var. Bu nedenle, üzerinde çalışılan çalışmayı geçici olarak kaydetmemiz veya saklamamız gerekir.
Aşağıdaki komutu çalıştırın.
git stash kaydet 'Mesaj'
Şu anda çalışma dizini temiz. Herhangi bir yeni taahhütte bulunulabilir ve hatalar varsa, üzerinde çalışmak için şubeyi değiştirebilirsiniz.
Kaldığınız yerde değişiklikleri yeniden uygulamak istediğinizde, komutu kullanın.
git stash pop
Yukarıdaki komut zulayı listeden kaldıracak ve son kaydedilen durumu uygulayacaktır.
Ayrıca kullanabilirsin:
git stash başvur
Yukarıdaki komut değişiklikleri saklayacak ve kaldırmayacaktır.
Şimdi değişiklikler yeniden uygulanır ve değişiklikleri gerçekleştirebilirsiniz.
Örnek 2: Değişikliklerinizi saklayın, dalı değiştirin ve değişiklikleri birleştirin.
Html dosyasında değişikliği yapın. usta şube ve zula değişiklikleri.
Sonraki, böcek dallanma, değişiklik yapma ve değişiklik yapma.
git checkout -b hatası
Html dosyasında değişiklik yapın.
git commit -a -m 'E-posta sorunu düzeltildi'
Geri dönün usta değişiklikleri zuladan ayırın ve yeniden uygulayın.
Şimdi birleştirin böcek şube usta şube. Birleştirmeden sonra değişiklikleri gerçekleştirin.
Örnek 3: Çoklu Stash ile Çalışma.
Lokal depoda 2 adet Html dosyası bulunmaktadır. Bu nedenle, birden çok geliştiricinin birden çok dosya üzerinde çalışması ve değişiklikleri düzeltmek için yollarına çıkan acil istekler üzerinde çalışmak için gerektiğinde değişiklikleri saklaması mümkündür.
Geliştirici 1, hello.html üzerinde çalışır ve Geliştirici 2, index.html üzerinde çalışır.
Geliştirici 1
Zula listesinde artık 1 giriş var.
Geliştirici 2
Zula listesinde artık 2 giriş var. En son zula, yığında ilk sırada yer alan stash @ {0}. Artık her iki geliştirici de başka herhangi bir işlemi acilen yapabilir veya başka bir dalda çalışabilir ve sonra geri dönebilir. usta dallanma ve zula değişikliklerini uygulayın.
En son zulayı uygulamak için sadece koşabilirsiniz
git stash pop
Yığına belirli bir zula uygulamak için aşağıdaki komutu çalıştırın.
git stash pop stash @ {1}
Şimdi ikinci zulayı uygulayalım. stash @ {1}
Benzer şekilde, diğer zula da uygulanabilir.
Git Cherry Pick
Günümüzde geliştiriciler, özellik, geliştirme, hata vb. Gibi birden fazla dal üzerinde çalışıyor.
Yalnızca birkaç belirli taahhüdün seçilmesi gereken ve tüm şubeyi başka bir şubeyle birleştirmemenin gerektiği durumlar vardır. Buna Cherry Pick denir. Bu işlem, diğer dallardan herhangi bir Git işlemesini rastgele seçmenize ve bunu çalışma ağacının geçerli HEAD'ine eklemenize olanak tanır.
Örnek 1:
Yerel git deposunda aşağıdaki 6 dosyaya sahibiz.
Bir dosya silindi, örneğin file5.txt.
Değişiklikleri uygulayın.
Şimdi günlüğe bakın. File5.txt silindi.
Bu nedenle, file5.txt eklediğimiz commit'i Cherry-Pick yapmak istiyoruz. File5.tx'in commit kimliğini bulmalı ve komutu çalıştırmalıyız.
git kiraz toplama
Bu durumda, file5.txt eklendiğinde kaydedilen kimlik a2f0124
File5.txt şimdi geri yüklendi. Taahhüdü Cherry-Seçtik.
Örnek 2:
Sadece değiştirelim file6.txt ve değişiklikleri işlemek usta şube.
İkinci satıra bak file6.txt e-postanın doğru şekilde belirtilmediği yer.
Bir hata dalı oluşturun ve sorunu düzeltin. Aynı zamanda, file5.txt dosyasını da değiştirin, böylelikle hata dalında birden çok işlem gerçekleştirebiliriz, ancak Cherry-Pick yalnızca file6.txt'de yapılan kaydetmeyi yapar.
Dosya6 değiştirildi böcek şube.
Yani, genel olarak, file5 ve file6 Bug şubesinde.
Şimdi geri dönelim usta şube ve Cherry-Yalnızca file6.txt için yapılan işlemi seçin.
Gördüğünüz gibi, birleştirmek yerine böcek dallanmak usta şube, biz sadece Cherry-Picked sadece belirli bir commit yaptık ve ana dalda uyguladık.
Git Sıfırla
Git sıfırlama, yerel değişiklikleri geri almak için güçlü bir komuttur. Yani, aşamayı kaldırmak için, bu komutun kullanıldığı tüm hazırlanmış dosyalar.
Misal
Bir dosyayı değiştirin ve aşamaya ekleyin. Aşamalı değişiklikler aşamalı olmadığında gösterildiği gibi komutu kullanarak sıfırlayın.
Parametreleri git sıfırla komut.
-yumuşak: Bu parametre HEAD'i başka bir işleme yönlendirecektir. Tüm dosyalar orijinal HEAD arasında değiştirilir ve kaydetme aşamalandırılır. Çalışma dizini sağlam.
Mevcut HEAD konumuna bakın.
Tarihte 5 kaydetmeye geri dönelim.
Değişiklikleri yeniden uygulayın.
-karışık: Seçenek, soft parametreye benzer. Genellikle, bazı kötü taahhütler olduğunda, onları kaldırır, daha sonra düzeltir ve geri verirsiniz. Yani esasen, kullanarak dizine eklememiz gerekiyor git ekle ve daha sonra git commit. Çalışma ağacında değişiklikler bırakılır.
Geçmişte 2 kaydetmeye geri dönelim ve dosyaların izlenmediğini görelim.
Şimdi dosyaları aşamaya ekleyin ve değişiklikleri uygulayın.
-zor: Bu parametre, belirli bir dosyanın var olduğu bir noktaya dayanacaktır. Değişiklikler çalışma ağacında kullanılamayacak.
Yukarıdaki günlüğe baktığımızda, sadece 1. dosyanın, yani son girişin işlendiği noktaya geri dönelim.
Kullanma git reset –sert
Git Bisect
Kodu bozan kesin kaydı bulun (Sonuçta hepimiz insanız). Genellikle uygulamanın testi sırasında, testçilerimizden bir hata olduğunu veya özelliğin bozuk olduğunu duyuyoruz ve geliştirici olarak geçen hafta çalıştığını söyleyeceksiniz. Peki ne oldu ve bu hata neden ortaya çıktı?
Bazen diğer koddaki bir değişiklik özelliğinizi etkilemiş olabilir. Zaman alıcı ve kodun kırılmasına neden olan değişikliğin izlenmesi zor olan birçok işlemin olduğu tarih boyunca zaman harcamanız gerekir.
Git Bisect hata ortaya çıktığında kesin kaydı bulma komutudur. Git bisect ile biri iyi diğeri kötü olmak üzere iki işlem seçmeniz gerekir. Her iki kaydetme arasındaki yaklaşık yarı mesafe kontrol edilecektir. Hatanın veya kodun bozulmasına neden olan işlem bulunana kadar her yürütmeyi kötü veya iyi olarak kontrol edersiniz.
Misal:
- Yeni bir yerel git deposu oluşturun ve index.html adlı bir dosya oluşturun
- Dosyanın ilk içeriği gösterildiği gibi.
- Evrelemeye ekleyin ve arşive kaydedin.
- İyi ve kötü taahhütler arasında seçim yapabilmemiz için gösterildiği gibi bir taahhüt geçmişi oluşturun. Şimdi ilk taahhüt tamamlandığında, diğer değişiklikleri gösterildiği gibi yapın ve aynısını uygulayın. Genel olarak, 7 işlem yapacağız.
İkinci Değişiklik
Üçüncü Değişiklik
Dördüncü Değişim
Beşinci Değişim
Altıncı Değişim
Yedinci Değişim
Burada duralım. Yani yedi taahhüdümüz var.
Html sayfasına bakarsanız, “Tüm 4 olay…” dan sonraki satırlar yanlıştır ve bu nedenle dokümantasyon doğru değildir. Bu nedenle, HEAD'imizi bu commit'e bırakabilmemiz için hatanın tanıtıldığı commit'i bulmalıyız.
Günlüğe bakalım ve şunu bulalım: kötü ve iyi taahhüt.
En son kaydetme doğru değildir, bu nedenle kötü bir taahhüt olabilir. Kayıt üçüncü kayıttan sonra tanıtıldı, böylece Üçüncü Değişiklik iyi bir taahhüt olarak.
İkiye ayırma süreci, git bisect başlangıç ve ile biter git bisect sıfırlama.
git bisect kötü // Son kaydetme kötü olduğu için. Kaydetme kimliğini sağlamaya gerek yok.
git bisect iyi
Artık HEAD'in kötü ve iyi taahhütlerin yarısı arasında olduğunu görebilirsiniz.
İndex.html'nin içeriğine bakın ve iyi bir commit olup olmadığına bakın. Değilse, hata hala bulunmaz.
Hatanın hala var olduğundan değil. Son satır yanlış. Yani, koşuyoruz ' git bisect kötü ’. Hala kötü bir taahhüt var ve mevcut içerik kabul edilemez.
Yukarıdaki içerik doğru ve kabul edilebilir.
'Git log –oneline' ve 'git bisect good' komutlarını çalıştırın.
Böylece Beşinci Değişim ilk kötü taahhüttü ve gerçekten de öyle. Hata tanımlanır.
Mevcut içerik nihai belgelerde yer almalıdır.
Kötü taahhüt belirlendiğinde, geliştiriciye, başın son iyi kaydetme olan dördüncü değişikliğe sıfırlanması olabilecek değişiklikleri düzeltmesi için bilgi verebilirsiniz.
Koşmak ' git bisect sıfırlama 'Süreci sona erdirmek için.
Sonuç
Bu GitHub uygulamalı kılavuzunda, bir geliştiricinin üzerinde çalışması gereken her şeyi, yani sürüm kontrolü ve izleme açısından ele almaya çalıştık.
GitHub serisinin ilk üç öğreticisinde, sürüm kontrol etkinlikleri, havuz oluşturma, çekme isteği, şubeler, kod incelemeleri, kuruluşlar ve ekipler, depo çatallama, etiketler, kilometre taşları, sorunlar, proje panoları, wiki'ler, sürümler, entegrasyon hakkında bilgi edindik. Jira ve geliştiriciler için yaygın olarak kullanılan bazı Git komutlarıyla.
Tüm geliştiricilerin GitHub ve Git komutları için bu uygulamalı yaklaşımı projelerinde yararlı bulacağını gerçekten umuyoruz.
=> Kolay GitHub Eğitim Serisini Okuyun.
Önerilen Kaynaklar
- GitLab Jira Entegrasyon Eğitimi
- Unix Komutları: Örneklerle Temel ve Gelişmiş Unix Komutları
- Eclipse Kullanarak GitHub ile Selenyum Entegrasyonu
- JIRA ve SVN Entegrasyon Eğitimi
- Git ve GitHub: Farklılıkları Örneklerle Keşfedin
- Salatalık Selenium Eğitimi: Salatalık Java Selenium WebDriver Entegrasyonu
- Geliştiriciler İçin GitHub Eğitimi | GitHub Nasıl Kullanılır
- Unix Borular Eğitimi: Unix Programlamada Borular