Гит Цлоне Бранцх - Како клонирати одређену грану

За разлику од старијих централизованих система за контролу верзија као што су СВН и ЦВС, Гит се дистрибуира. Сваки програмер има пуну историју и контролу над својим кодом локално или даљински. Они такође могу приступити или манипулисати са неколико делова кода како сматрају да одговарају са различитих локација.

Откако је Линус Торвалдс (познати творац језгра оперативног система Линук) 2005. године креирао Гит за развој Линук кернела, постао је најчешће коришћени савремени систем за контролу верзија на свету.

У овом чланку ћу вас упознати са радним токовима Гит клона и Гит гране и показаћу вам како можете да клонирате одређену грану на основу својих потреба. Почнимо! ?

Предуслови

  • Основно знање терминала
  • Могућност куцања наредби у терминалу
  • Гит је инсталиран (и даље ћу вам показати како)
  • ГитХуб налог
  • Осмех на лицу (Ставити оног осмеха пријатеља?)

Кратки увод у Гит и ГитХуб

Према Википедији,

Гит је дистрибуирани систем контроле верзија дизајниран да прати промене на пројекту (коду) у развоју софтвера. Намењен је јачању координације, сарадње, брзине и ефикасности међу програмерима.

ГитХуб је, с друге стране, веб хостинг услуга за контролу верзија помоћу Гита. Нуди све дистрибуиране функције Гит-а за контролу верзија и управљање изворним кодом, као и додавање додатних функција за рачунарски код.

Како инсталирати Гит на Виндовс

Преузмите и инсталирајте најновији Гит за Виндовс Инсталлер овде.

Како инсталирати Гит на Линук

Ево наредби заснованих на вашем Линук дистрибуцијском систему:

Дебиан или Убунту

sudo apt-get update sudo apt-get install git

Федора

sudo dnf install git

ЦентОС

sudo yum install git

Арцх Линук

sudo pacman -Sy git

Гентоо

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

Како инсталирати Гит на Мац

Овде преузмите и инсталирајте најновији програм за инсталирање Гит за Мац.

Или можете откуцати ову команду:

brew install git

Сад кад смо инсталирали Гит, пређимо на водич.

Увод у Гит Цлоне

Гит вам омогућава управљање и верзију ваших пројеката у „спремишту“. Ово спремиште се чува на веб услузи хостинга за контролу верзија, попут ГитХуб-а.

Затим можете да клонирате ово спремиште на свој локални рачунар и да имате све датотеке и огранке локално (ускоро ћу објаснити више о огранцима).

На пример, можете клонирати спремиште фрееЦодеЦамп-а са ССХ-ом на следећи начин:

git clone [email protected]:freeCodeCamp/freeCodeCamp.git

Увод у Гит Бранцхес

Када радите на пројекту, вероватно ћете имати различите особине. На овом пројекту и његовим карактеристикама радиће више сарадника.

Подружнице вам омогућавају да направите „игралиште“ са истим датотекама у masterподружници. Ову грану можете користити за изградњу независних карактеристика, тестирање нових карактеристика, уношење измена, креирање исправки, писање докумената или испробавање идеја без кршења или утицаја на производни код. Када завршите, спојите грану у производну masterграну.

Разгранавање је основни концепт у Гит-у који се такође користи у ГитХуб-у за управљање токовима рада различитих верзија једног пројекта. masterГрана је увек подразумевани огранак у спремиште која се најчешће сматра "производња и распоредити код". Нове гране се могу passwordless-authили refactor-signup-uxмогу створити из masterгране.

Како да клонирате Гит гране

Иако можете клонирати спремишта помоћу git cloneнаредбе, имајте на уму да ово клонира грану и даљински управљач HEAD. То је обично masterподразумевано и укључује све остале гране у спремишту.

Дакле, када клонирате спремиште, клонирате masterи све остале гране. То значи да ћете сами морати да наручите другу пословницу.

Рецимо да је ваш задатак на пројекту рад на функцији за додавање потврде идентитета без лозинке на корисничку контролну таблу. И ова карактеристика је у passwordless-authграни.

Заиста вам masterграна није потребна, јер ће се ваша „грана функција“ masterнакнадно спојити у . Како онда клонирати ову passwordless-authграну без дохвата свих осталих грана са „гомилом датотека које вам нису потребне“?

Направио сам ово спремиште узорака да бих то објаснио. Ово спремиште садржи једноставан блог направљен са Нектјс-ом и има четири лажне гране:

  • господару
  • дев
  • инсценација
  • пассвордлесс-аутх

У Нектјс-у, било која датотека у фасцикли pages/apiпресликава се на /api/*путању и третираће се као АПИ тачка уместо као page. У нашем спремишту креирао сам различите лажне АПИ-је у овом директоријуму како бих сваку грану учинио другачијом.

masterГрана држи фајл странице / апи / хелло.јс док passwordless-authдржи фајл странице / АПИ / аутх.јс . Свака датотека само враћа лажни текстуални одговор. Погледајте masterовде поздравни АПИ одговор (са посебном поруком за вас?).

Клонирајмо спремиште:

git clone [email protected]:BolajiAyodeji/nextjs-blog.git

Ово нам даје приступ свим гранама у овом спремишту и можете лако да се пребацујете између њих да бисте видели сваку верзију и њене датотеке.

git branch -a

Питате се откуд даљински управљачи / порекло / .. гране?

Када клонирате спремиште, извлачите податке из спремишта на Интернету или са интерног сервера познатог као даљински управљач . Реч порекло је псеудоним који је створио ваш Гит да би заменио удаљени УРЛ (ако желите) можете променити или одредити други псеудоним.

Ове гране даљинског управљача / порекла / .. воде вас назад до спремишта порекла које сте клонирали са Интернета, тако да и даље можете изводити повлачење / гурање са исходишта.

Дакле, када клонирате masterна своју машину, remotes/origin/masterоригинална је masterграна на Интернету и masterна вашој локалној машини. Дакле, вући ћете / гурати од и до remotes/origin/master.

Укратко, Ремоте је УРЛ који вас води до спремишта на Интернету, док је Оригин псеудоним за овај удаљени УРЛ.

Како да клонирате одређену грану

Сада клонирајмо одређену грану из нашег демо спремишта. Постоје два начина за клонирање одређене гране. Можете:

  • Клонирајте спремиште, преузмите све гране и одмах извршите наплату до одређене гране.
  • Клонирајте спремиште и преузмите само једну грану.

Прва опција

git clone --branch  

или

git clone -b  

Овим дохваћате све гране у спремишту, наплаћујете ону коју сте навели, а одређена грана постаје конфигурисана локална грана за git pushи git pull. Али свеједно сте преузели све датотеке из сваке гране. Ово можда није оно што желите, зар не? ?

Хајде да га тестирамо:

 git clone -b passwordless-auth [email protected]:BolajiAyodeji/nextjs-blog.git

Ово се аутоматски конфигурише passwordless-authкао локална грана, али и даље прати друге гране.

Друга опција

git clone --branch  --single-branch 

или

git clone -b  --single-branch 

Ово изводи исту радњу као и опција прва, осим што је --single-branchопција уведена у Гит верзији 1.7.10 и новијој. Омогућава вам преузимање датотека само из наведене гране без дохвата других грана.

Хајде да га тестирамо:

git clone -b passwordless-auth --single-branch [email protected]:BolajiAyodeji/nextjs-blog.git

Ово се аутоматски конфигурише passwordless-authкао локална грана и прати само ову грану.

Ако покренете cd pages/api, auth.jsдатотеку ћете пронаћи у passwordless-authграни као што се очекивало од претходног подешавања.

Закључак

Можда вам понестаје интернета или простора за складиштење, али морате да радите на задатку у одређеној грани. Или бисте из различитих разлога можда желели да клонирате одређену грану са ограниченим датотекама. Срећом, Гит вам пружа флексибилност за то. Истегните мишиће и испробајте, постоји још много „Гита“ за учење.

Један по један, да? ✌?