Как да превключвате между проблеми във вашето локално хранилище на Git

По време на пътуването си до отворен код попаднах в проста (но сложна) ситуация, която може да ви спъне, ако го направите погрешно. И това ще обсъдим в тази статия.

Участието в общността с отворен код означава, че допринасяте за разработването на безплатен софтуер или софтуер с отворен код. Има много организации, които винаги приветстват участници в своите кодови бази.

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

Предпоставки

  1. Инсталирайте Git
  2. Имайте основно разбиране за Git

Защо проблеми?

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

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

Работа по даден въпрос

За да започнете работа по проблем, трябва да направите клонинг или копие на целевото хранилище, като използвате командата Git clone на вашата локална машина.

git clone 

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

git remote add upstream  

За да визуализирате списъка с налични дистанционни и задачи, които могат да бъдат изпълнени (извличане и натискане), напишете:

git remote -v

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

git fetch /

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

git merge / 

Целта на Git merge е да направи локалното копие на главния клон съвпадение точно същото като копието нагоре по веригата на главния клон.

След това създайте клон за проблема, който сте получили. Защо трябва да създадете клон? И за какво се използва клон? Нека разследваме допълнително.

Git клон

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

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

За да създадете клон, трябва да въведете следната команда Git:

git checkout -b 

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

git checkout -b   

За да изброите всички налични клонове във вашето хранилище, напишете:

git branch

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

git push -u origin  

Сега как да премина към работа по следващия брой?  

Създайте различен клон с описателно име, като това:

git checkout -b   

След като имаме наш клон, ще използваме помощна команда от концентратора. Командата ще ни помогне да извлечем код от горния поток и също така ще стартира сливането (ако инсталирате помощната програма на концентратора).

hub sync

Командата извлича промените нагоре по веригата и ги обединява с новосъздадения клон. Винаги можете да проверите за промени с вашия клон и нагоре, като използвате командата Git status:

git status

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

Грешки, които може да допуснете.

Може да сгрешите, докато работите по множество проблеми - което може да доведе до изтриване на ангажименти от клон.

Ето примерна разходка за това, което може да се направи, за да се изтрият нежеланите ангажименти от клон:

Стъпка 1: Превключете в клона, където искате да премахнете нежеланите ангажименти:

git checkout  

Стъпка 2: Стартирайте записите на ангажименти, направени към клона. Това ще ви помогне да решите кои ангажименти бихте искали да запазите въз основа на уникалния хеш на фиксиране (контролна сума от 40 символа SHA1 на съдържанието на комитите ), обикновено в тази форма: da034f6ff3e856b5ba155bc01def0847a1c4ed7e .

git log

Също така си струва да се отбележи, че ако искате да запазите най-новия коммит (да речем последния), можете просто да направите това:

git log -n 1

Стъпка 3: Тъй като искате да отхвърлите всички останали фиксирания на този клон, просто приложете този единствен ангажимент към клона. Отхвърлянето и прилагането са две стъпки:

Първо, отхвърлете всички ангажименти в клона с:

git reset --hard / 

По-просто казано, горната команда казва на Git да изхвърли всички поетапни и нестадийни промени. Ще забрави всичко в текущия локален клон и ще го направи точно същото като upstream/master.

Второ, приложете този единствен ангажимент към клона с командата:

git cherry-pick Hash //where Hash is a commit hash from other branch

Тази команда избира една препратка (т.е. фиксиране) по подразбиране от клон и го прилага към друга.

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

За да свършим това, трябва да използваме команда, за да помогнем да изтриете отдалечената история и да я замените с друга история:

git push --force origin

Тази команда ще отхвърли допълнителните фиксирания на дистанционното, точно както ние отхвърлихме допълнителните фиксирания на локалното копие. Това е опасно, защото това е една от малкото git команди, които ще отхвърлят нещо - така че бъдете внимателни, когато го използвате.

Сега, когато стартирате, git statusтой съобщава, че клонът е актуален /. Това ви показва, че операцията е извършена успешно.

Благодарим ви, че прочетохте ?! Голям вик към Марк Уейт?  

Последвай ме в Туйтър.