Queinn 1
Queinn
NovaLst 1
NovaLst
InfernoShade 1
InfernoShade
MysticBlade 1
MysticBlade
SolarPhantom 1
SolarPhantom
Riftas 1
Riftas
LunarWraith 1
LunarWraith
DarkHorizon 1
DarkHorizon
SLyFeLLowTR 1
SLyFeLLowTR
Scarlet 1
Scarlet
dogusarikaya 1
dogusarikaya
delimuratt 1
delimuratt
Hikaye Ekle

Git Clone Branch - Belirli Bir Dal Nasıl Klonlanır

  • Konuyu başlatan Konuyu başlatan ITJA
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 8
  • Görüntüleme Görüntüleme 589

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

SVN ve CVS gibi daha eski merkezi sürüm kontrol sistemlerinin aksine Git dağıtılmıştır. Her geliştirici, kodlarının yerel veya uzaktan tam geçmişine ve denetimine sahiptir. Ayrıca, farklı konumlardan uygun gördükleri için kodun çeşitli bölümlerine erişebilir veya bunları değiştirebilirler.

Linus Torvalds (Linux işletim sistemi çekirdeğinin ünlü yaratıcısı) 2005 yılında Linux çekirdeği geliştirme için Git'i yarattığından beri, dünyada en yaygın kullanılan modern sürüm kontrol sistemi haline geldi.

Bu makalede, size Git klonu ve Git dalı iş akışlarını tanıtacağım ve ihtiyaçlarınıza göre belirli bir dalı nasıl klonlayabileceğinizi göstereceğim. Hadi başlayalım! ?

Önkoşullar

  • Terminalin temel bilgisi
  • Terminalde komut yazabilme özelliği
  • Git yüklendi (yine de nasıl olduğunu göstereceğim)
  • GitHub hesabı
  • Yüzünde bir gülümseme

Git ve GitHub'a Hızlı Giriş

Wikipedia'ya göre,

Git , yazılım geliştirmede bir projede (kodda) yapılan değişiklikleri izlemek için tasarlanmış dağıtılmış bir sürüm kontrol sistemidir. Geliştiriciler arasında koordinasyon, işbirliği, hız ve verimliliği sağlamayı amaçlamaktadır.
GitHub ise Git kullanarak sürüm kontrolü için web tabanlı bir barındırma hizmetidir. Git'in tüm dağıtılmış sürüm kontrolü ve kaynak kodu yönetimi işlevlerini sunmasının yanı sıra bilgisayar kodu için daha fazla özellik ekliyor.

Windows'a Git Kurulumu

Windows Installer için en son Git'i buradan indirin ve yükleyin.

Linux'a Git Nasıl Kurulur

Linux dağıtımınıza dayalı komutlar şunlardır:

Debian veya Ubuntu

sudo apt-get update sudo apt-get install git

Fedora

sudo dnf install git

CentOS

sudo yum install git

Arch Linux


sudo pacman -Sy git

Gentoo

sudo emerge --ask --verbose dev-vcs/git

Mac'e Git Yükleme

En son Mac için Git yükleyicisini buradan indirin ve yükleyin.

Veya şu komutu yazabilirsiniz:

brew install git

Artık Git'i kurduğumuza göre, öğreticiye geçelim.

Git Clone'a Giriş

Git, projelerinizi bir "havuzda" yönetmenize ve sürümlendirmenize olanak tanır. Bu depo, GitHub gibi sürüm kontrolü için web tabanlı bir barındırma hizmetinde depolanır.

Daha sonra bu depoyu yerel makinenize klonlayabilir ve tüm dosya ve dalları yerel olarak alabilirsiniz (yakında şubeler hakkında daha fazla bilgi vereceğim).


1.png



Örneğin, freeCodeCamp'ın deposunu SSH ile şu şekilde klonlayabilirsiniz:

git clone git@github.com:freeCodeCamp/freeCodeCamp.git

Git Dallarına Giriş

Bir proje üzerinde çalışırken, muhtemelen farklı özelliklere sahip olacaksınız. Ve birçok katılımcı bu proje ve özellikleri üzerinde çalışacak.

Dallar, masterdalda aynı dosyalarla bir "oyun alanı" oluşturmanıza olanak tanır . Bu dalı, üretim kodunu bozmadan veya etkilemeden bağımsız özellikler oluşturmak, yeni özellikleri test etmek, son değişiklikler yapmak, düzeltmeler oluşturmak, dokümanlar yazmak veya fikirleri denemek için kullanabilirsiniz. İşiniz bittiğinde, şubeyi üretim masterşubesiyle birleştirirsiniz .

Dallanma, bir projenin farklı sürümlerinin iş akışlarını yönetmek için GitHub'da da kullanılan Git'te temel bir kavramdır. masterŞube her zaman en sık "üretim ve konuşlandırılabilir kod" olarak kabul edilir bir depo varsayılan dalıdır. Şube gibi passwordless-authveya şubeden yeni şubeler refactor-signup-uxoluşturulabilir


2.png


Git Dalları Nasıl Klonlanır

Komutla depoları klonlayabilirsiniz git clone, ancak bunun dalı ve uzaktan kumandayı klonladığını unutmayın HEAD. Bu genellikle mastervarsayılan olarak ve depodaki diğer tüm dalları içerir.

Yani bir depoyu klonladığınızda, masterve diğer tüm dalları klonlarsınız. Bu, başka bir şubeyi kendiniz kontrol etmeniz gerektiği anlamına gelir.

Bir projedeki görevinizin, bir kullanıcı panosuna şifresiz kimlik doğrulama eklemek için bir özellik üzerinde çalışmak olduğunu varsayalım. Ve bu özellik passwordless-authşubede.

master"Özellik dalınız" daha sonra birleştirileceği için gerçekten şubeye ihtiyacınız yok master. Öyleyse passwordless-auth, "ihtiyacınız olmayan bir sürü dosya" ile diğer tüm dalları getirmeden bu dalı nasıl klonlayabilirsiniz ?

Bunu açıklamak için bu örnek depoyu oluşturdum. Bu depo, Nextjs ile oluşturulmuş basit bir bloga sahiptir ve dört sahte şubeye sahiptir:

  • usta
  • geliştirici
  • sahneleme
  • şifresiz kimlik doğrulama
Nextjs'de, klasörün içindeki herhangi bir dosya yola pages/apieşlenir /api/*ve bir page. Depomuzda, her şubeyi farklı kılmak için bu dizinde farklı sahte API'ler oluşturdum.

masterŞube dosya tutan sayfaları / api / hello.js iken passwordless-authdosya tutan sayfaları / API / auth.js . Her dosya yalnızca sahte bir metin yanıtı döndürür. Bkz masterişte merhaba API yanıt (sizin için özel bir mesaj ile?).

Depoyu klonlayalım:


git clone git@github.com:BolajiAyodeji/nextjs-blog.git

Bu, bize bu depodaki tüm dallara erişim sağlar ve her sürümü ve dosyalarını görmek için her biri arasında kolayca geçiş yapabilirsiniz.


3.png


Uzaktan / menşe / .. şubelerinin nereden geldiğini merak ediyor musunuz?

Bir depoyu klonladığınızda, verileri internetteki bir depodan veya uzaktan kumanda olarak bilinen dahili bir sunucudan alırsınız . Origin kelimesi, uzak URL'yi değiştirmek için Git'iniz tarafından oluşturulan bir takma addır (isterseniz başka bir takma adı değiştirebilir veya belirtebilirsiniz).

Bu uzaktan kumandalar / orijin / .. dalları, sizi internetten klonladığınız başlangıç havuzuna geri yönlendirir, böylece başlangıç noktasından çekme / itme gerçekleştirebilirsiniz.

4.png


Dolayısıyla master, makinenize klonladığınızda , internetteki remotes/origin/masterorijinal masterşubedir ve masteryerel makinenizdedir. Böylece çekip / iteceksin remotes/origin/master.

Özetle Uzak , sizi internetteki depoya yönlendiren URL iken, Origin bu uzak URL için bir takma addır.

5.png

Belirli Bir Dal Nasıl Klonlanır


Şimdi demo depomuzdan belirli bir dalı klonlayalım. Belirli bir dalı klonlamanın iki yolu vardır. Aşağıdakilerden birini yapabilirsiniz:

  • Depoyu klonlayın, tüm dalları alın ve hemen belirli bir şubeye ödünç verin.
  • Depoyu klonlayın ve yalnızca tek bir dalı getirin.

Seçenek bir

git clone --branch

veya


Bununla, belirttiğiniz birine tüm depo şube, ödeme getirme ve belirli şube için yapılandırılmış yerel şube haline gelir git pushve git pull. Ancak yine de her şubeden tüm dosyaları getirdiniz. İstediğin bu olmayabilir değil mi? ?

Hadi test edelim:

git clone -b passwordless-auth git@github.com:BolajiAyodeji/nextjs-blog.git

Bu otomatik passwordless-autholarak yerel şube olarak yapılandırılır , ancak yine de diğer şubeleri izler.

6.png





7.png


İkinci Seçenek


git clone --branch --single-branch

veya

git clone -b --single-branch

Bu, --single-branchseçeneğin Git sürüm 1.7.10 ve sonrasında tanıtılması dışında birinci seçenekle aynı eylemi gerçekleştirir . Diğer dalları getirmeden yalnızca belirtilen şubeden dosya almanıza izin verir.

Hadi test edelim:

git clone -b passwordless-auth --single-branch git@github.com:BolajiAyodeji/nextjs-blog.git

Bu otomatik passwordless-autholarak yerel şube olarak yapılandırılır ve yalnızca bu şubeyi izler.

8.png


9.png


Çalıştırırsanız cd pages/api, auth.jsdosyayı passwordless-authşubede önceki kurulumdan beklendiği gibi bulacaksınız .

Sonuç

İnternet veya depolama alanınız tükeniyor olabilir, ancak belirli bir şubede bir görev üzerinde çalışmanız gerekir. Veya çeşitli nedenlerle sınırlı dosyayla belirli bir dalı klonlamak isteyebilirsiniz. Neyse ki Git size bunu yapma esnekliği sağlıyor. Kaslarınızı esnetin ve deneyin, öğrenecek çok daha fazla "Git" var.
 

En Çok Reaksiyon Alan Mesajlar

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst