Tekrar hoş geldiniz.
Bir önceki videomuzdan devam ederek daha gelişmiş bir iş akışı hakkında konuşalım ve GitHub'ı alalım.
Şimdi, bu noktaya kadar, Marcy ve ben sadece burada, ana dal üzerinde çalışıyorduk.
Bu ne anlama geliyor?
Şubeler yazıyor ama ben burada sadece master görüyorum.
Ve işleri yapma şeklimizle ilgili bir sorunu fark etmiş olabilirsiniz.
Yani, eğer işteki ilk günümse ve unvanı yeni değiştirdiysem.
Ama belki de bu değişikliği istemedik bile.
Belki bu markamızı ya da uygulamamızı bozar.
Ancak bunu Master'a dönüştürmek için çok kolay bir şekilde yapabildim.
Belki Marcy bunu bile bilmiyordu.
Bu değişikliği ekledim.
Ve bu büyük bir sorun, değil mi?
Bir şeyleri üretim dediğimiz, kullanıcının gördüğü şeylerin içine koymak istemezsiniz.
Eğer web sitemizi bozacaksa, Facebook gibi büyük bir şirketseniz, birkaç saat süren
bir hatanız olsa bile bu milyonlarca dolar gelir kaybı anlamına gelebilir.
Bu yüzden size sahip olacağınız daha gerçekçi bir iş akışını göstereceğim ve bu da dallanma ile olacak.
Size ne demek istediğimi göstereyim.
Burada Jed'in gerçekten çok iyi olduğu bir görsel var.
Şimdiye kadar, master dediğimiz şey üzerinde çalışıyorduk.
Bu ana dal.
Ana dalı otorite olarak düşünün.
Bu, uygulamamızın veya web sitemizin görünmesi gereken doğru yoldur.
Ve şimdiye kadar, havalı arka plan başlığını eklediğimde, arka plan oluşturucudan havalı
oluşturucuya geçtim.
Sonra Marcy bunu büyük harflerle değiştirince buraya geldik ve doğrusal bir şekilde bir uçtan
diğerine, diğer uçtan diğerine gittik.
Ama dediğim gibi, bu biraz sorunlu bir durum.
Bu yüzden yapılacak daha iyi bir şey dallanma dediğimiz şeydir.
Başlığı değiştirmek istersem, bir dal oluşturacağım ve örneğin sadece küçük özellik olarak adlandıracağım.
Ve ana dalı etkilemeden o dal üzerinde kendi başıma çalışıyorum.
Kullanıcı ne görür.
Ve.
Ancak bittiğinde, Marcy gözden geçirdiğinde, test ettiğimizde ve ekipteki herkes
onay verdiğinde, o zaman Master'a geri getiririz.
Ve burada büyük özellik ile görebilirsiniz, kendi dalınızda uzun süre devam edebilirsiniz ve
sadece işiniz bittiğinde.
Master ile birleştirme dediğimiz şeyi yapın.
Bugün size bunun nasıl çalıştığını göstereceğim.
Bunu kapatacağım ve örneğimizi hatırlayacağım.
Marcy'nin bilgisayarı tüm dosyalarla birlikte burada ve benim bilgisayarım da tüm dosyalarla birlikte burada.
İkimiz de iş istasyonumuzu kurduk.
Ve şimdi terminalimdeki master'ın ne anlama geldiğini görüyorsunuz, daha sonra notlarda size bunu nasıl ayarlayabileceğinizi
göstereceğim, böylece size hangi dalda olduğunuzu söyleyecek.
Ama ikimizin de Master'da olduğunu görebiliyoruz.
Bu benim bilgisayarım.
Marcy'nin bilgisayarı da Master'da.
İkimizin de en son GitHub ile güncel olduğundan emin olmak istiyoruz.
Marcy çekecek ve ben de çekeceğim.
Diyelim ki şu anda yeni bir özellik üzerinde çalışıyorum ve master üzerinde çalışmamak daha iyi bir iş akışı olduğu için ve bu iyi
bir ipucu olduğu için genellikle master üzerinde çalışmayın, her zaman dallara ayırın.
Eğer Branch'ı alırsam, bana bunu gösterecekler.
Benim sadece bir şubem var ve o da master.
Ama buna eklemeler yapabiliriz.
Yeni veya küçük bir özellik dal olsun diyebiliriz.
Ve şimdi eğer şubeyi alırsam.
Küçük bir özelliğim olduğunu görüyorum, ancak şu anda bir usta olduğum için usta vurgulanmış.
Bu yüzden küçük özellik şubesine gitme yöntemim, Get check out diyeceğim.
Küçük bir özellik.
Ve işte Küçük Özellik dalına geçiyorsunuz ve şimdi Küçük Özellik dalındayım.
Ben de Master'dan yola çıktım ve şimdi küçük bir özellik yarattım.
Biraz değişiklik yaratalım.
Küçük özellikte, mevcut CSS arka plan başlığını arka planın bu olduğunu söyleyecek şekilde değiştireceğimizi
söyleyeceğim.
Burada güvende olacağım.
Ve yine, son videoda yaptığımız basit iş akışımı durum elde etmek için yapıyorum.
Anlıyorum.
Evet, indeksimiz var. html değişikliği.
Hava açılacak ki görebilelim.
Şimdi bu değişikliği yaptığımıza göre, ekleme yapalım.
Ve yine, her şeyin yolunda gittiğinden emin olmak için durumu öğrenin.
Evet.
Endeksi işlemeye hazırız. html yapacağız, böylece commit mesajı metni değişecek.
Mükemmel.
Şunu açıklığa kavuşturalım.
Ve şimdi, GitHub'a yapmamız gereken değişiklikleri bildirmek için tekrar push edin.
O zaman zorlayacağız.
Tamam.
GitHub'a gidelim ve neler olduğuna bakalım.
Şimdi bu sarı çubuğun ortaya çıktığını ve yakın zamanda şubeleri ittiğinizi söylediğini görüyoruz.
Buradaki ekran düğmesine tıklarsam, karşılaştır, çek, talep et.
Bana hangi değişiklikleri yaptığımı gösteriyor, yani başlığı değiştirdim ve burada Marcy'ye "Marcy,
metni değiştirdim" diyerek haber verebilirim.
Sen ne düşünüyorsun?
Ve Çekme İsteği Oluştur'a tıklıyorum.
Ve şimdi PR'm var ve burada nasıl çekme isteklerini birleştir yazdığını görüyorsunuz.
Diyagramımıza geri dönecek olursak, bu küçük özelliği oluşturdum ve şimdi diyorum ki,
Hey Marcy, bu yeni değişikliği yaptım.
Sen ne düşünüyorsun?
Master ile birleştirmemde bir sakınca var mı?
Ve büyük olasılıkla burada olacak şey, Marcy'nin gelip bu çekme isteğini görmesidir.
Çekme isteği sekmelerinde olduğumuzu görebilirsiniz.
Böylece onları görebilecek ve "Andre az önce şu değişikliği yaptı" diyebilecek.
Değişikliklere bakacak.
Ve diyecek ki, Hmm, eğer bunu beğenirse, "İyi görünüyor" diyebilir.
İnceleme başlat seçeneğine tıklayabilir.
Ve ne var biliyor musun?
Ya bunu sevecek ya da onaylayacak.
Şimdi, Marci ya da ben.
Genellikle kendi havuz taleplerinizi birleştirmek istemezsiniz.
Takımdan biri yapıyor.
Artık sadece birleştirme diyebilirim.
Çek.
İste, onayla.
Birleştir.
Ve işte oldu.
Bazı ekipler şubeyi daha sonra silmeyi sever, bu nedenle burada sil seçeneğine tıklayabilirsiniz.
Eğer koda geri dönersem.
Artık şubelerim yok çünkü az önce sildim.
Ama benim ustamda eğer indekse gidersem. html Arka planın bu olduğunu görüyorum.
Artık Marci projesine gidip "Çekin" diyebilir.
Ve tekrar.
Son gelişmeler onda.
Şimdi ortaya çıkabilecek bazı çatışmalardan bahsedelim.
Şimdi, diyelim ki Marcy bir şeyi değiştirmek istiyor ve ben de aynı şeyi değiştiriyorum ve bir birleştirme çatışması
yaşıyoruz.
Bakalım neler olacak.
Diyelim ki Marcy değiştirmek istiyor, yeni bir özellik yaratıyor ve biz buna büyük bir özellik diyeceğiz.
Ya çıkış ya da şubeye git diyecek.
Büyük özellik.
"Büyük bir kontrol yap" diyecek.
Özellik.
Ve eğer şube alırsam, burada yeni bir şube olduğunu görürüz.
Şunu açıklığa kavuşturalım.
Ve burada bunu arka plan rengine veya arka plan oluşturucuya geri döndürmek istediğini söyleyecektir, çünkü tüm kullanıcılar
başlığın değiştiğinden şikayetçidir ve eski başlığı sevmektedirler.
O da bunu değiştirdi.
Get add'i yaptı.
Taahhüt al.
Eski başlığa geri dönüyorum.
Mükemmel.
Sonra da ittirecek.
Aslında önce bunu açıklığa kavuşturalım.
Ve itiliyoruz.
Bunu ilk kez aldığınızda, yukarı akış olmadığını söyleyen bu hatayı alabilirsiniz.
Burada size verdikleri kodu kopyalamanız yeterli.
Mükemmel.
Şimdi, eğer geri dönersem.
Jeneratöre dönüyoruz.
Burada büyük bir özellik çekme talebi görüyorum.
Birden fazla taahhütte bulunabileceğinizi göstermek için, diyelim ki Marcy "bu benim" demeye karar verdi.
Marcy buraya bir ünlem işareti eklemeye karar verir.
Sadece tekrar söyleyebilir, bunu kurtarır.
Bu çok açık.
Add'i getir diyecek.
Taahhüt al.
Bunu çok yaparsınız, böylece bir şirkette bir süre çalıştıktan
sonra gerçekten çok iyi olursunuz ve X ünlemi eklendi diyecektir.
Oops.
Yapmak istediğim şey, kendimi adamak.
Taahhüt.
Ünlem eklendi.
Ve tekrar itilecek.
Ve yardım almak için geri dönelim.
Zavallı talebe bakarsak, aslında bunların her ikisini de eski başlığa geri döndürüp ünlem
ekleyecekler.
Ve burada her iki değişikliğin de çekme isteğinde değişiklik gerektirdiğini görüyoruz.
Andre.
Yani bu anket talebi ortadayken.
Şimdilik sadece çatışma diyelim adında yeni bir şube açmaya karar verdim.
Ben de çatışmayı kontrol edeceğim.
Ve şimdi de çatışma şubesinde.
Değişmeye karar verdim.
Bu, soğuk jeneratörü tamamen çıkarmak içindir.
Bunu saklayayım mı?
Tekrar.
Durumumu ve endeksimi kontrol ediyorum. html dosyası değiştirilmiştir.
Bu gerçekleşirken, marci'nin çekme isteğini birleştirmesini sağlıyorum.
Bu yüzden ustaya girdi.
Çekme isteği geldi.
Ve şimdi eğer çatışmama geri dönersem ve statü alırsam.
Ve bunları da eklemeliyiz.
O yüzden Add'i alın, sonra da Commit'ü alın.
Burada sadece kısa bir mesaj vereceğim.
Sadece kontrol et.
Ve şimdi Usta'ya geri dönersem.
Oh, yapmak zorundayım.
Çıkış yap, tekrar usta.
Değişikliklerimi göndermeden önce, bir master'ın en son sürümüne sahip olduğumdan emin olmak istiyorum.
Yani hiçbir şeyi değiştirmiyorum.
Herhangi bir çatışma yaşamayacağım.
Bu yüzden en son haberleri almak için çekeceğim.
Şimdi de çıkış yapmaya gidiyorum.
Çatışma şubesi.
Ve bu komutu alabilirim.
Ustayı birleştir.
Ben de diyorum ki usta olan her şeyi çatışmayla birleştirin.
Marci büyük özellik üzerinde çalışıyordu ve onu birleştirdi.
Şimdi Master'da büyük özellik dalı var.
Ayrıca başka bir dal oluşturdum ve çatışma dalı üzerinde kendi başıma çalışıyorum.
Ve çatışma dalı master hakkında hiçbir şey bilmiyor.
Ben de diyorum ki, hey, şu anda Master'da ne varsa, ki buna Marci'nin üzerinde çalıştığı büyük özellik de
dahil, onu içeri çekin ve herhangi bir çakışma olmadığından emin olun.
Ben de öyle yapıyorum.
Ve çatışma birleştirme çatışması ve dizin alıyorum. html dosyası.
Şimdi sublime text'e tıklarsam, daha iyi görebilmeniz için bunu açmama izin verin.
Aman Tanrım.
Bu garip sözdizimini alıyorum.
İlk başta bunaltıcı olsa da neler olduğunu görmek kolay.
Kafa benim dalımın olduğu yer ve bana burada artık H'ye sahip olmadığımı gösteriyor.
Ancak ana dalda arka plan oluşturucumuz var.
Artık Marcy ile konuşabilir ve "Hey, Marcy, arka plan jeneratörü unvanını korumak ister misin?" diyebilirim.
O da "Evet, doğru olan buydu" diyecek.
Arka planı değiştirmeyin.
Bu durumda, sadece bu satırları kaldırıyorum.
Ve bunu kaldır.
Ve kurtar.
Şimdi, eğer alırsam.
Şu anki durum.
Tamam.
Burada değiştirilmiş durumdayız.
Görebilmeniz için bunu tekrar küçültmeme izin verin.
Şunu açıklığa kavuşturalım.
Şimdi yapmamız gereken şey, bu değişiklikleri yaptığımız için tekrar get add yapmamız
ve get commit fixing, merge issue yapmamız gerekiyor.
Ve ben unuttum.
Tekrar deneyelim.
Ve.
Çakışma düzeltme birleştirme sorunu.
Burayı temizleyelim ve statü alalım.
Yapacak bir şey yok, temizlemeye çalışıyorum.
Ve eğer push alırsam, yine bu hatayı alıyorum.
Ama bu sefer size göstermek istiyorum, eğer köken çatışması yaşarsam.
Şimdi çalışıyor.
GitHub'a geri dönelim.
Bakalım ne tür şeylerimiz varmış.
Çatışma dalımız var ve şimdi çatışma dalına bakarsak, değişen bir şey yok çünkü az önce tüm
değişikliklerimi geri aldım.
Yani tamamen boş.
Artık bir değişiklik yok.
Marcy de şöyle derdi: Hey, bu PR'ı yapmak istedin mi, boş.
Böylece PR'ımda bu mesajı göreceğim ve devam edebileceğim.
GET'te göreceğiniz iş akışı hemen hemen budur.
Bundan sonra komutları size bırakacağım.
Ama görüyorsunuz, sizinle çalışmak, birkaç komut öğrenmek ve bir şey üzerinde her çalıştığınızda
her zaman bir dal oluşturduğunuza dair bu görsel modele sahip olduğunuz sürece çok, çok güzel.
Üzerinde çalıştığınız özelliğe göre başlık atarsınız.
Ve arada bir, diğer geliştiricilerin veya ekip arkadaşlarınızın yaptığı güncellemeleri kaçırmadığınızdan emin olmak için master'ı
çekmek ve master'ı dalınızla birleştirmek istersiniz.
Özelliğinizle işiniz bittiğinde, get push yaparak bir çekme isteği oluşturursunuz ve bu çekme isteğine yorumlar eklersiniz
ve insanlar dosya değişikliklerinizi gözden geçirir.
Ve birkaç değişiklik yapmanızı isterlerse, o zaman tekrar yapabilir, ekleyebilir, ekleyebilir, işleyebilirsiniz.
Son olarak değişikliklerinizi yapın ve ardından birleştirme, çekme, istekte bulunabilirsiniz.
Ve bu yapıldıktan sonra ekipteki diğer herkes için artık yeni bir usta vardır.
Bu yüzden takımdaki diğer herkes de çekilmelidir.
Alışması biraz zaman alıyor, ancak ekipteki herkesin aynı dosyalar, aynı projeler
üzerinde, herhangi bir hataya neden olmadan çalışmasını ve herkesin iyi bir şekilde işbirliği yapmasını sağlamak
için gerçekten çok güzel bir iş akışı.
İşte bu kadar.
Umarım bunu faydalı bulmuşsunuzdur.
Bir sonrakinde görüşürüz.
Güle güle.