Git ve Github: Yeni Başlayanlar İçin Yeni Başlayanlar Kılavuzu

Yayınlanan: 2017-08-15

Televizyon ve filmlerin bize anlattıklarına rağmen, bir yazılım geliştiricisi olarak yaşam, karanlık bir odada oturmayı, klavyemizin yalnızca monitörün ışığıyla aydınlanmasını, başka bir insanla etkileşime girme düşüncesini içermez. Hayır, bir yazılım geliştiricisi olarak hayat sosyal ve işbirlikçidir - bazen hayal kırıklığı noktasına kadar. Bu yüzden git ve Github'a sahibiz.

Git, ilk öğrenme eğrisini geçtikten sonra ekip arkadaşlarıyla işbirliğini son derece basit hale getiren sürüm kontrol yazılımıdır. Göz korkutucu olabilir, ama bu yüzden buradayım!

Git nedir?

Şey, bu sadece biz Güneylilerin verandalarımızdan yabani otları kovma şeklimiz değil, bunu size söyleyeceğim.

Yukarıda söylediğim gibi Git, sürüm kontrol yazılımıdır. Linux'u icat eden adam Linus Torvalds tarafından yaratıldı. Git'i kullanmak için Linux kullanıyor olmanız gerekmez; onu Windows ve Mac'te de kullanabilirsiniz.

Git, yazılımınızın geliştirilmesi sırasında sizin ve ekibinizin yaptığı her revizyonu kolayca takip etmenizi sağlar. Hepiniz bağımsız olarak üzerinde çalışılan ve daha sonra tekrar birleştirilen bir kod deposunu paylaşırsınız. Ayrıca, proje hem yerel olarak her makinede hem de uzaktan (muhtemelen Github'da) kaydedildiği için her zaman bağlı olmanıza gerek yoktur.

Git özeldir (ve hemen hemen zorunludur), çünkü kodunuzun önceki herhangi bir sürümüne geri dönebilir, dallara ayrılabilir ve herhangi bir şeyi veya başkasını etkilemeden belirli bir özelliği geliştirebilir ve dağıtılmış yapısı nedeniyle veri bozulmasına karşı güvenliği sağlayabilirsiniz.

Ayrıca, nerede olursanız olun projenizin bazı yönleri üzerinde çalışabilmeniz için, kolayca uygulanan şifreleme ve işletim sistemleri arası uyumluluğun yanı sıra eşzamansız, doğrusal olmayan iş akışları sağlar.

Temel olarak, git kullanmıyorsanız, bir eliniz arkanızda bağlıyken kod yazıyorsunuz.

Gerekli Kelime

Git'i ilk kullanmaya başladığınızda göz korkutucu olabilir. Geçmişte herhangi bir sürüm denetimi kullanmadıysanız, komutlar ve kavramlar tamamen yabancı görünebilir. Yine de onları süper hızlı alacaksın.

Depo:

Genellikle repo olarak anılır. Depo, izlemek için git'i kullandığınız dosya ve klasörlerin koleksiyonudur. Depo, ekibinizin projede yaptığı değişikliklerin tüm geçmişinden oluşur. Bu, sizin ve ekibinizin kodunuzu içine attığı büyük ole kutusudur.

Github:

Git depoları için en popüler uzaktan depolama çözümü. Ayrıca, projeler için erişim izinleri ayarlamanıza, hataları izlemenize ve göndermenize, özellik isteklerini kabul etmenize, havuz bildirimlerine abone olmanıza ve komut satırını kullanmak yerine bir grafik arayüzü kullanmanıza olanak tanır. Depolar varsayılan olarak herkese açıktır, ancak ücretli hesapların özel hesapları olabilir.

İşlemek:

Bunu işinizi kurtarmak olarak düşünün. Bir depoya söz verdiğinizde, dosyaları o anda olduğu gibi topluyor ve bir zaman kapsülüne koyuyor gibisiniz. Taahhüt, uzak bir havuza aktarılana kadar yalnızca yerel makinenizde var olacaktır.

İtmek:

İttirmek, taahhütte bulunmanın ekmeğidir. Taahhüt etmek, dosyalarınızı zaman kapsülüne atar ve itmek, kapsülü uzaya fırlatan şeydir. Push, esasen taahhütlerinizi bulutla senkronize etmektir (yine, muhtemelen Github). Aynı anda birden fazla taahhüdü de zorlayabilirsiniz. Çevrimdışı çalışabilir, çok iş yapabilir ve ardından uygarlığa geri döndüğünüzde o tatlı, tatlı wifi ile hepsini Github'a aktarabilirsiniz.

Dal:

Git deponuzu bir ağaç olarak düşünebilirsiniz. Ağacın gövdesine, yani canlıya geçen yazılıma Ana Dal denir. İşte o canlı yayına giriyor. O ağacın dallarına da dal denir. Bunlar, ana kod tabanından ayrılan kodun ayrı örnekleridir. Tek bir özellik veya deneysel bir yama için dalabilirsiniz. Dallanarak, yazılımın bütünlüğünü koruyabilir ve tamamen çılgınca bir şey yaparsanız geri dönmenin bir yolunu bulabilirsiniz. Ayrıca, ekibinizin yoluna (ya da onlar sizinkine) takılmadan göreviniz üzerinde çalışmanıza olanak tanır.

Birleştirmek:

Bir dal cilalandığında, hatasız olduğunda (en azından söyleyebileceğiniz kadarıyla) ve birincil kod tabanının parçası olmaya hazır olduğunda, ana dalla birleştirilir. Birleştirme tam da kulağa nasıl geliyor: iki dalı bir araya getirmek. Herhangi bir yeni veya güncellenmiş kod, kod tabanının resmi bir parçası olacaktır. Birleşme noktasından ayrılan herkes kendi şubesinde de bu koda sahip olacaktır.

Klon:

Bir repoyu klonlamak, kulağa tam olarak benzediği gibi. Tüm çevrimiçi depoyu alır ve yerel makinenizde tam bir kopyasını oluşturur. Bunu, en az yeni bir ekiple bir projenin ortasında başlamak, iş istasyonlarını değiştirmek veya bozuk bir depodan başlamak gibi birçok nedenden dolayı yapmanız gerekecektir.

Çatal:

Forking, klonlamaya çok benzer, yalnızca yerel makinenizde mevcut bir deponun bir kopyasını oluşturmak yerine, bu kodun tamamen yeni bir deposunu kendi adınıza alırsınız. Bu özellik esas olarak mevcut bir kod tabanını almak ve onunla tamamen yeni bir yöne gitmek için kullanılır, ki bu açık kaynaklı yazılımlarda çokça olur; geliştiriciler, işe yarayan bir temel fikir görür, ancak onunla farklı bir yol izlemek ister. Çatallama bunun olmasına izin verir. Ayrıca, kendi kişisel sanal alanınız gibi başka bir geliştiricinin deposunda da oynayabilirsiniz. Ve beğenebileceklerini düşündüğünüz bir şey yaparsanız, birleştirilmesi için bir çekme talebinde bulunabilirsiniz.

Çekme İsteği:

Bir çekme talebi, yaptığınız değişikliklerin (bir dalda veya çatalda) havuzun Ana Dalına çekilmesi (veya birleştirilmesi) için bir talep gönderdiğinizde ortaya çıkar. Bu büyük zaman. Sihir yapılan yer burasıdır. Çekme isteği onaylanırsa, yazılıma resmi olarak katkıda bulunmuş olursunuz ve Github sonsuza kadar tam olarak ne yaptığınızı gösterir. Ancak, çekme isteği herhangi bir nedenle reddedilirse, reddeden, isteğin neden geri çevrildiği ve kabul edilmesi için neler yapabileceğiniz konusunda geri bildirimde bulunabilecektir.

Başlarken ve Gerekli Komutlar

Bu çok kötü değildi, değil mi?

Doğru. Artık git'in ne olduğu hakkında net bir fikriniz olduğuna göre, ellerinizi kirletmenin zamanı geldi.

Bununla birlikte, git ile etkileşim kurmak için komut satırını kullandığınızı varsayacağımı belirtmek için bu fırsatı değerlendirmeliyim. Tabii orada grafiksel git müşterileri (ve Github bile 's web arayüzü aracılığıyla hemen hemen herşeyi yapmanıza olanak sağlar), ancak bu yazının amaçları için onlarla rahatsız etmeyeceğiz. Terminalin dışında bir sürü şey yapacaksınız, ancak komut satırı yeni BFF'niz olacak. Yani biz de bununla gidiyoruz.

Git Nasıl Kurulur

Git (muhtemelen) bilgisayarınızda yüklü olarak gelmedi, bu yüzden onu oraya götürmemiz gerekiyor. Neyse ki, ister Linux, ister Mac veya Windows kullanıyor olun, git'i yüklemek son derece kolaydır.

Linux için, terminali açın ve sudo apt-get install git-all yazın (Ubuntu'daysanız. Değilse, hangi diğer dağıtımda olursanız olun, tüm Linux paketi yükleme komutlarının bir listesi vardır.)

Windows'ta, bu kadar basit. Yükleyiciyi indirir ve çalıştırırsınız.

Mac'te terminali açmanız ve git yazmanız yeterlidir. Git kurulu değilse, şunu göreceksiniz:

Yükle'yi tıkladığınızda, gitmeye hazırsınız.

Görmek? Süper kolay!

Git'i kullanma

İşte eğlence burada başlıyor. Artık git'i yüklediğinize göre, şimdi... git-r-done! Hah! Ancak, bu şaşırtıcı küçük komut satırı sihirbazını kullanmaya başlamanın ve öğrenmeye başlamanın gerçekten zamanı geldi. Ve başlamak için Github'dan daha iyi bir yer var mı?

Bu yüzden gidin ve yeni Github hesabınız için kaydolun (ya da zaten bir hesabınız varsa giriş yapın, birazdan sizinle olacağım).

Github, halka açık depolar için ücretsizdir ve özel depolara bir ücret karşılığında sahip olabilirsiniz. (Bilginize: Daha az bilinen ama harika bir yer olan Bitbucket'te ücretsiz özel depolar alabilirsiniz). Çoğunlukla, Github'daki ücretsiz seçenek çoğu insan için iyidir (ve aynı zamanda yaşayan bir özgeçmiş gibi çalışır!), ancak bazı müşteriler ve işverenler gizlilik ve güvenliğe ihtiyaç duyacaktır, bu nedenle seçeneklerin olması iyidir.

Bundan sonra, ilk deponuzu kurmaya hazırsınız! E-postanızı ve tüm bu eğlenceli şeyleri doğruladıktan sonra.

Depoyu önce Github'da kurmak isteyeceksiniz. Bunu bilgisayarınızda yapabilir ve ardından yükleyebilirsiniz, ancak bunu önce web'de yapmak daha kolaydır.

Bu depoda bir lisans veya .gitignore hakkında endişelenmediğime dikkat edin. Bu gerçek bir yazılım parçası olmadığı için, bunlar hakkında endişelenmeme gerek yok, ancak üretim durumlarında .gitignore, açık bir şekilde deponuzun dizini içindeki dosyaları yok saymanıza izin verir. Yazılımınızın hangi lisansa ihtiyacı olduğunu buradan okuyabilirsiniz.

Ancak, projenin temel belgelerini saklamak için kullanmanız gereken bir README dosyasıyla depoyu başlatıyorum. Çalışırken bunları büyük değişiklikler, yapılacaklar listeleri ve farklı türde notlar için bir izleyici olarak kullanma eğilimindeyim. Ama bu kişisel projelerde. Farklı ekip liderlerinin farklı beklentileri olacaktır.

Artık repo Github'da bulunduğuna göre, klonlama yoluyla yerel makinenize getirmenin zamanı geldi. Deponuzun sağında, dosya listesinin hemen üstünde, “Klonla veya İndir” yazan yeşil bir düğme göreceksiniz. Tıklayın ve şunu göreceksiniz:

Klonladığımız için HTTPS ile Klonlama kısmı dışında her şeyi görmezden gelebiliriz. Bir şey yapılandırmanız gerekmeyecek. Bastığınızda sadece kullanıcı adınızı ve şifrenizi girmeniz gerekecek.

Ancak önce, deponuzun yerel makinenizde yaşamasını istediğiniz yeri ayarlamanız gerekir. Terminalinizi açın. (Windows kullanıcıları, Windows Powershell adlı programı aratıp açın. Ayrıca sağ tıklayıp “Yönetici Olarak Çalıştır”ı seçmenizi öneririm.)

Öğrenmeniz gereken ilk komut ls . Bu, geçerli dizindeki her şeyi listeler . İşleri basit tutmak için, dev klasörümüzü bilgisayarın ana dizininde canlı hale getirelim. Bir dizin adında dev yapmak için mkdir dev kullanabilirsiniz. Oldukça basit, değil mi? Tekrar ls yaparsanız, yeni klasörün listelendiğini göreceksiniz.

Ardından, change directory için komut olan cd dev'i kullanarak yeni dizininize geçmek istiyorsunuz. Bakın, komut satırı hiç de korkutucu değil! Bir önceki dizine geri dönmeniz gerekirse, sadece cd .. .

Eğer yeni dev dizini içine girdikten sonra, bu partiyi git için 's zaman başladı. Heh heh heh.

Github'daki yeşil “Klonla veya İndir” düğmesini tıkladıktan sonra gelen URL'yi kopyalayarak başlayın. Bunun gibi görünecek: https://github.com/bjk1337/myfirstrepo.git

Github'dan Git Deposunu Klonlama Komutları

  • git klonu https://github.com/bjk1337/myfirstrepo.git
  • ls
  • cd myfirstrepo - veya deponuza ne ad verdiyseniz
  • ls

Bundan sonra, terminaliniz Github'da kurduğunuz README dosyanızı gösteren böyle bir şey olmalıdır. Tebrikler! Git'i ilk kez kullandınız ve artık geliştirmeye başlamaya hazırsınız.

Nitty Gitty Cesur

Artık makinenizde bir deponuz olduğuna göre, onu kullanmayı öğrenmeniz gerekiyor. Öyleyse biraz ileri saralım ve bir süredir harika bir proje üzerinde çalıştığınızı ve dizinde bazı dosyalarınız olduğunu söyleyelim. Bunları taahhüt etme ve Github'a gönderme zamanı.

Git Deposuna Ekleme ve Kabul Etme

  • git status – Bu komut, bir sonraki işlem için listeye hangi dosyaların eklenmediğini gösterir. Çoğu terminal uygulamasında, eklenmemiş/eklenmemiş dosyalar sırasıyla kırmızı/yeşil olacaktır.
  • git ekle. - ekleyerek. komutun sonunda git'e dizindeki her şeyi dahil etmesini söylüyorsunuz. Tek bir dosya eklemek istiyorsanız, sadece dosya adını kullanın. function.php gibi .
  • git status - Kullanıp kullanmadığınıza bağlı olarak . veya dosya adı, eklediğiniz her şey şimdi yeşil olmalıdır.
  • git commit -m “üç boş dosya ekle” – Bu dosyaları teslim ettiğinizde, takım arkadaşlarınızın (veya gelecekteki benliğinizin) bu taahhütte tam olarak ne olduğunu bilmeleri için hızlı bir mesaj da bırakmalısınız. Standart git kuralları, mümkün olduğunca kısa ve net olmanız gerektiğini ve mesajı fiilin şimdiki zamanını kullanarak başlatmanızı söyler.

Terminalinizde artık çok fazla metin olacak ve bu şekilde görünmelidir. Ama şimdi tüm bunların ne anlama geldiğini biliyorsun!

Github gibi bir Uzak Git Deposuna Gönderme

Bir depoya geçmek bundan daha da kolaydır.

  • git status – Her zaman işlerin nasıl göründüğünü kontrol etmeli ve doğru dalda olduğunuzdan emin olmalısınız.
  • git itme
  • Github için kullanıcı adınızı ve şifrenizi girin – Dikkat edin, siz yazarken bile şifre alanı boş kalacaktır. Tamam. Sadece yazın ve enter tuşuna basın. SSH kullandıysanız, bu adımı atlarsınız.

Github hesabınıza gidebilir ve depoyu kontrol edebilirsiniz, dosyalarınız orada olacak, mesaj gönderecek ve hepsi!

Dallanma ve Birleşme

Bilmeniz gereken son iki komut, dallanma ve birleştirme ile ilgilidir. Yukarıda söylediğim gibi, bir dal üzerinde çalışmak ana kod tabanını güvende tutar ve değişiklikleriniz tamamen züppe olduğunda, hepsini tekrar bir araya getirebilirsiniz.

Biraz zor olabilirler, bu yüzden onları iyi oynamaları için biraz dürtme gerektirebilir.

  • git checkout -b “branch1” – Bu komut, hem başlıklandırdığınız yeni bir dal oluşturacak hem de sizi çalışan dalınız olarak değiştirecektir. Hem git checkout hem de git branch komutlarını tek bir kullanışlı kod satırında birleştirir.
  • touch harika.html – bu, ana dosyayla yeniden birleştireceğim yeni bir html dosyası oluşturmak için yalnızca bir dolgu komutudur.
  • Ve daha önce olduğu gibi, git status, git add awesome.html, git commit -m “create harika.html” yapacaksınız.
  • git status tekrar her şeyin olması gerektiği gibi olduğunu görmenizi sağlar.

Birleştirmeden önce onu zorlamaya çalışırsanız, repo'nun kaynağını ayarlamanız gerektiğine dair bir mesaj alırsınız. Origin , bilgisayarınızın uzak depoyu düşündüğü şey için garip bir adlandırma kuralıdır. Yani temelde, ona sadece, evet, master'ın yaptığı gibi bu dalı Github'a itmenin sorun olmadığını söylüyorsunuz. İşte Stack Overflow'tan git Origin hakkında iyi bir konu.

Bu arada, size şube1 -> şube1'e gittiğini söyleyecektir.

git checkout master ile ana dala geri dönebilirsiniz (bu sefer checkout -b yok çünkü bunu sadece yeni bir dal oluştururken kullanıyorsunuz, değiş tokuş yapmıyorsunuz. Aşağıdaki ekran görüntüsünde komutlarımı karıştırdım ve git branch master'ı denedim Başarılı olmadı çünkü usta zaten vardı.

  • git durumu – Her zaman olduğu gibi.
  • git merge branch1 – Bu daldaki her şey yolunda olduğundan, devam edip birleştirebiliriz.
  • Tekrar git status yaparsak, 1 taahhütle Origin/master'ın önünde olduğumuzu göreceğiz. Bu, yaptığımız tüm değişiklikleri Github'a aktarmadığımız anlamına gelir.
  • işleri senkronize etmek için git itin !

Github hesabınızı kontrol edin; yaptığınız her şeyin orada yansıtıldığını göreceksiniz. Farklı taahhüt mesajlarını, yaptığımız şube sayısını ve taahhütlerin yanı sıra depoya katkıda bulunanları ve ne yaptıklarını da görebilirsiniz.

Ve bu kadar! Tebrikler! Az önce temel git iş akışınızı salladınız. Sen git ile bundan daha karmaşık şeyler yolu, yol, yol yapabilirsiniz, ancak bu oldukça yakın sadece ... başladı gitting olduğunuzda muhtemelen günlük olarak kullanacağız ne olduğunu.

Ah, Bir Şey Daha!

Bu makale için kullandığım Github Repo, myfirstrepo hala yayında. Kontrol etmekten, onunla oynamaktan, çatallamaktan, klonlamaktan veya git'i kullanmaya alışacağınızı düşündüğünüz her şeyden çekinmeyin. İyi eğlenceler! (Ve benimle ve tüm git kelime oyunlarımla ilgilendiğiniz için teşekkürler.)

Makale küçük resmi, MchlSkhrv / Shutterstock.com tarafından