Ръководство за Git: Как да останем спокойни с екипа

Илюстрация на объркан екип | Източник: Спондж Боб

Git е твърд, завинтването е лесно. Има много неща, които трябва да знаете как да използвате git ефективно с екипа. За щастие сте тук, ще ви покажа ръководство за git, за да ви помогна да работите в екипа.

Какво е git?

Git е безплатна и с отворен код разпределена версия за контрол на системата (DVCS) за проследяване на промените в изходния код по време на разработката на софтуер. Git е проектиран да борави с бързина и ефективност всичко от малки до много големи проекти.

Основни команди

Ще ви покажа някои основни команди в git, които да ви помогнат да допринесете в своя екип.

git init

Ако искате да създадете ново локално хранилище, можете да изпълните:

git init

След това имате свежо и чисто ново хранилище. Оттам можете да започнете да работите с кода в новото си хранилище.

git клон

Вие сте в екип за разработка и проектът вече е направен от вашия екип в GitHub или GitLab. Сега искате да допринесете за работата си във вашия компютър. Можете просто да използвате git clone, за да направите хранилището клонирано във вашите локални файлове така:

git клон 

git клон

След клонирането на вашето онлайн хранилище в локалното ви хранилище не можете да започнете кодирането веднага. Трябва да създадете свой собствен клон, за да не се обърка с крайния продукт на вашето хранилище. Има няколко опции в командата на git клон:

git клон

Избройте всички клонове във вашето хранилище. Това е синоним на git клон --list.

git клон 

Създайте нов клон, наречен , Това не проверява новия клон.

git клон -d 

Изтрийте посочения клон. Това е „безопасна“ операция, тъй като Git ви предпазва от изтриване на клона, ако има незаменени промени.

git клон -D 

Принудително изтрийте посочения клон, дори ако той има непрекъснати промени. Това е командата, която трябва да използвате, ако искате трайно да изхвърлите всички ангажименти, свързани с определен ред на развитие.

git клон -m 

Преименувайте текущия клон на ,

git клон -a

Списък на всички отдалечени клонове.

git checkout

След като създадете свой собствен клон. Искате да се придвижите от текущия си клон (по подразбиране е master) до вашия клон, като използвате командата git checkout. Проверката на клон актуализира файловете в работната директория, за да съответства на версията, съхранена в този клон, и казва на Git да записва всички нови ангажименти в този клон. Мислете за това като начин да изберете коя линия на развитие работите.

Превключването на клоните е проста операция. Изпълнението на следното ще насочи HEAD към върха на ,

git checkout 

При сътрудничество с екип е обичайно да се използват отдалечени хранилища. Тези хранилища могат да бъдат хоствани и споделяни или да са локално копие на друг колега. Всяко отдалечено хранилище ще съдържа собствен набор от клонове. За да проверите отдалечен клон, първо трябва да извлечете съдържанието на клона.

git fetch - всички

В съвременните версии на Git можете да проверите отдалечения клон като местен клон.

git checkout 

Освен това можете да проверите нов местен клон и да го нулирате на отдалечените клонове последния ангажимент.

git checkout -b git reset - твърд произход /

git дистанционно

Просто кажете, че искате да клонирате вашия екипен проект в собствено онлайн хранилище. След като създадете свой собствен хранилище в GitHub или GitLab, искате да преместите локалното си хранилище на вашия екипен проект към вашето онлайн хранилище. За да проверите вашата връзка, можете да използвате тези команди:

git дистанционно

Списък на отдалечените връзки, които имате към други хранилища.

git дистанционно -v

Същият като горната команда, но включва URL адреса на всяка връзка.

Сега искате да свържете локалното си хранилище със собственото си онлайн хранилище, като използвате следните команди:

git дистанционно добавяне 

Създайте нова връзка с отдалечен хранилище. След като добавите дистанционно, ще можете да използвате като удобен пряк път за в други Git команди.

git дистанционно rm 

Премахнете връзката с извиканото отдалечено хранилище ,

git дистанционно преименуване 

Преименувайте отдалечена връзка от да се ,

дръпване

Ако има актуализация на онлайн хранилището в клона, в който работите в момента, можете да актуализирате локалното си хранилище, като просто използвате командата git pull. Моят по подразбиране начин за изтегляне от онлайн хранилище е чрез използване на git pull но има няколко опции в git pull command:

дръпване

Извадете копието на зададения отдалечен от текущия клон и незабавно го обединете в локалното копие. Това е същото като git fetch последвано от git merge origin / ,

git pull - не се ангажирам

Подобно на извикването по подразбиране, извлича отдалеченото съдържание, но не създава нов ангажимент за сливане.

git pull --rebase

Същото като предишното изтегляне Вместо да използвате git merge за интегриране на отдалечения клон с локалния, използвайте git rebase.

git pull --verbose

Дава многословен изход по време на изтегляне, който показва съдържанието, което се изтегля, и детайлите за сливане.

git push

След като направихте промените си в локалното хранилище, независимо колко е малко въздействието върху файловете. Използвайте git push, за да „натиснете“ промените си в локално хранилище към онлайн хранилището. Моят по подразбиране начин за преминаване към онлайн хранилище е чрез използване на git push но има няколко опции в git push командата:

git push

Натиснете посочения клон до , заедно с всички необходими ангажименти и вътрешни обекти. Това създава локален клон в депозитария на местоназначение. За да ви попречи да презапишете ангажименти, Git няма да ви позволява да натискате, когато това доведе до бързо обединяване напред в хранилището на местоназначението.

git push - force

Същото като горната команда, но принуждавайте натискането, дори ако това доведе до не-бързо преместване напред. Не използвайте флага --force, освен ако не сте абсолютно сигурни, че знаете какво правите.

git push - всички

Избутайте всички ваши местни клонове към посоченото дистанционно.

git push - маркери

Маркерите не се натискат автоматично, когато натиснете клон или използвате - всички опция. Флагът --tags изпраща всички ваши локални маркери в отдалеченото хранилище.

git сливане

След като натиснете работата си към вашия клон на онлайн хранилището. Сега кажете, че искате да обедините промяната си с крайния продукт, нека да кажем на основния клон, но самият главен клон вече е актуализиран, тъй като други разработчици от вашия екип са слели клона си с главния клон.

Преди сливането | Източник: Atlassian

Ако те не променят кода в същите редове като вашата работа, можете просто да обедините клона си, без да получавате конфликт, като използвате команда merge

git checkout master git merge git клон -d
След обединени | Източник: Atlassian

Най-добрата практика след сливането на вашия клон е да го изтриете безопасно.

В друг случай, ако техният код е в същите редове като вашия код и кодовете са различни, ще срещнете сливане-конфликт. Първо трябва да разрешите конфликта, преди отново да обедините клона си.

git rebase

Като алтернатива на сливането можете да пребазирате разклонението на функцията в главния клон, като използвате следните команди:

git checkout функция git rebase master

Това премества целия клон на характеристиките, за да започне от върха на главния клон, като ефективно включва всички нови ангажименти в master. Но вместо да използваме ангажимент за сливане, rebasing пренаписва историята на проекта, като създава чисто нови ангажименти за всеки ангажимент в оригиналния клон.

Докато сливането създава нов ангажимент за сливане в клона на функции като този:

Обединяване на главния да се използва клон | Източник: Atlassian

Rebase премества всички ангажименти в клона на функции към най-новия главен ангажимент на клона като чисто нови ангажименти

Глава на базата данни към клон | Източник: Atlassian

Основната полза от преиздаването е, че получавате много по-чиста история на проекта. Първо, той елиминира ненужните ангажименти за сливане, изисквани от git merge. Второ, както можете да видите на горната диаграма, презаписването също води до перфектно линейна история на проектите - можете да следвате върха на функцията до началото на проекта без никакви вилици.

git revert

Обръщането отменя ангажимент чрез създаване на нов ангажимент. Това е безопасен начин за отмяна на промените, тъй като няма шанс да напише отново историята на ангажиментите. В един от много случаи, ако функцията ви съдържа грешка в крайния продукт (в главния клон), трябва незабавно да направите корекция. Можете да използвате git revert в тази ситуация.

Например, следната команда ще разбере промените, съдържащи се във втория за последен ангажимент, ще създаде нов ангажимент, който отменя тези промени, и ще постави новия ангажимент върху съществуващия проект.

git checkout актуална корекция git revert HEAD ~ 2

Това може да се визуализира като следното:

Преди да се върнете | Източник: AtlassianСлед възстановяване | Източник: Atlassian

Командата за връщане на git е операция за отмяна на движение, която предлага безопасен метод за отмяна на промените. Вместо изтриване или осиротяване на ангажименти в историята на ангажиментите, възстановяването ще създаде нов ангажимент, който обръща посочените промени. Git revert е по-безопасна алтернатива на рестартирането на git по отношение на загубата на работа.

git скривалище

git stash временно рафтове (или скривалища) промените, които сте направили в работното си копие, за да можете да работите върху нещо друго, след което се върнете и ги приложите по-късно. Сташингът е удобен, ако трябва бързо да превключите контекста и да работите върху нещо друго, но сте по средата на промяната на кода и не сте съвсем готови да се ангажирате.

Командата git stash отнема вашите непроменени промени (както поетапни, така и непоставени), запазва ги за по-късна употреба и след това ги връща от работното ви копие. Например:

$ git status На главния клон Промени, които трябва да бъдат извършени: нов файл: style.css Промените не са поетапно ангажирани: модифициран: index.html $ git stash Записана работна директория и състояние на индекса WIP за master: 5002d47 нашата нова начална страница HEAD вече е на 5002d47 нашата нова начална страница $ git status На майстора на клона нищо не се ангажира, работи дърво чисто

На този етап вие сте свободни да правите промени, да създавате нови ангажименти, да превключвате клонове и да извършвате всякакви други Git операции; след това се върнете и приложете отново скривалището си, когато сте готови. Обърнете внимание, че скривалището е локално за вашето Git хранилище; скривалищата не се прехвърлят на сървъра, когато натиснете.

Можете да приложите отново скрити промени с git stash pop:

$ git status На майстора на клона нищо не се ангажира, работещо дърво чисти $ git скривалище поп На master клона Промени, които трябва да бъдат извършени:
 нов файл: style.css
Промени, които не са поетапно ангажирани:
 променено: index.html
Отпаднали номера / скривалище @ {0} (32b3aa1d185dfe6d57b3c3cc3b32cbf3e380cc6a)

Изскачането на скривалището ви премахва промените от скривалището ви и ги прилага отново във вашето работно копие.

Като алтернатива можете да приложите отново промените в работното си копие и да ги запазите в скривалището си с приложено скривалище за git:

$ git stash се прилага на master клона Промени, които трябва да бъдат извършени:
 нов файл: style.css
Промени, които не са поетапно ангажирани:
 променено: index.html

Това е полезно, ако искате да приложите едни и същи скрити промени в няколко клона.

Сега, когато знаете основите на скривалището, има едно предупреждение с git скрийнш, което трябва да сте наясно: по подразбиране Git няма скривалище промени, направени в непроследени или игнорирани файлове.

Затваряне

Надявам се тази статия да ви даде повече знания, за да разберете Git и как да подобрите екипната си работа в проекти. Ще се видим в следващата статия! Благодаря за четенето!

Допълнителни ресурси

  • Атласски | Уроци по Git