Git

Как да използвам Git тагове за подобряване на процесите на разработка

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

Какво представляват Git таговете?

Git таговете са указатели към определени фиксирания. Те са като отметки. Можете да използвате всякакъв вид конвенция, която искате да създадете тагове. Но повечето екипи за разработка използват номера на версии като v1.0.1 или v.1.1-a1 за създаване на тагове.

Създаване на тагове

В Git има два типа тагове:

Леки етикети

Леките етикети са лесни за създаване. Можете просто да използвате следния команден ред:

$ git таг

Тези маркери се съхраняват в .git папка на вашето работещо хранилище.

Нека създадем няколко леки Git тагове:

$ git таг v1.0.1
$ git tag Release-20190401

В първия случай създадохме таг с „v1.0.1 ”. Във втория случай създадохме маркер с „Release-20190401“. Леките тагове не връщат никаква стойност. Също така е важно да се отбележи, че тъй като тези два маркера са направени гръб до гръб, те сочат към един и същ коммит.

Анотирани етикети

Анотираните маркери ви позволяват да съхранявате повече информация. Можете да използвате опцията “-a”, за да създадете следните маркери:

$ git таг -a

Нека се опитаме да създадем анотиран маркер:

git таг -a v1.0.2

Ще се покаже текстов прозорец, за да въведете коментар, който трябва да изглежда така:

#
# Напишете съобщение за етикет:
# V1.0.2
# Редове, започващи с '#', ще бъдат игнорирани.

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

git таг -a v1.0.3-m "Моята версия 1.0.3 "

Намиране на етикети във вашия код

След като създадохме няколко маркера, нека видим какво имаме:

$ git таг -l
Издание-20190401
v1.0.1
v1.0.2
v1.0.3

Можем да видим, че всички наши маркери се показват в азбучен ред. Можете да получите повече информация за маркерите, като използвате „-n" където означава броя на редовете на коментарите.

$ git таг -n1
Release-20190401 Актуализиран README.md
v1.0.1 Актуализиран README.md
v1.0.2 Моята версия 1.0.2
v1.0.3 Моята версия 1.0.3

Тук можете да забележите разлика между леките и коментираните маркери. В този пример „Release-20190401“ и „v1.0.1 ”са леки етикети. „V1.0.2 ”и„ v1.0.3 ”са коментирани маркери. Всички те сочат към един и същ ангажимент (ангажимент 34671):

$ git log
фиксиране 106e0bb02a58ec3e818e9acdf3bb19a9247a0e84 (HEAD -> master, tag: v1.0.4)
Автор: Zak H
Дата: сряда, 6 април 21:06:02 2019 -0700
 
Добавена функция 2
 
ангажиране 161c6e564e79624623ed767397a98105426d0ec4
Автор: Zak H
Дата: сряда, 6 април 21:05:25 2019 -0700
 
Добавена функция 1
 
ангажиране 34671d824f9b9951e57f867998cb3c02a11c4805 (таг: v1.0.3, таг: v1.0.2,
таг: v1.0.1, таг: Release-20190401)
Автор: Zak H
Дата: сряда, 6 април 20:24:53 2019 -0700
 
Актуализиран README.md
 
ангажиране afe9b0c7c9fbce3c3d585afe67358a5eec226e2c (произход / главен)
Автор: Zak H
Дата: сряда, 6 април 20:23:55 2019 -0700
 
В него

Леките етикети обаче показват коментарите от самия коммит, който е „Актуализиран README.md ”, докато анотираните маркери показват отделните коментари, които са били добавени към тях по време на процеса на създаване на маркери.

Бакшиш: Ако искате да намерите номера на фиксиране на определен маркер, можете да използвате командата “git show”:

$ git show v1.0.3
таг v1.0.3
Tagger: Zak H
Дата: сряда, 6 април 20:43:30 2019 -0700
 
Моята версия 1.0.3
 
ангажиране 34671d824f9b9951e57f867998cb3c02a11c4805 (таг: v1.0.3, таг: v1.0.2, таг:
v1.0.1, таг: Release-20190401)
Автор: Zak H
Дата: сряда, 6 април 20:24:53 2019 -0700
 
Актуализиран README.md
 
diff --git a / README.md b / README.md
индекс 9daeafb ... 180cf83 100644
--- а / ПРОЧЕТЕТЕ.md
+++ б / ЧЕТЕНЕ.md
@@ -1 +1 @@
-тест
+тест2

Маркиране на по-стари ангажименти

Можете също така да се върнете назад и да маркирате по-стар комит. Нека да разгледаме дневниците:

$ git log --oneline
106e0bb (HEAD -> master, tag: v1.0.4) Добавена функция 2
161c6e5 Добавена функция 1
34671d8 (таг: v1.0.3, таг: v1.0.2, таг: v1.0.1, таг: Release-20190401) Актуализирано README.md
afe9b0c (произход / главен) Init
$

Забелязваме, че фиксирането 161c6e5 няма свързан маркер. Можем да маркираме този ангажимент по следния начин:

$ git tag -a Release-20190402 161c6e5

Ще се появи прозорецът за коментари. След като поставихме коментара, можем да видим, че имаме отметка, маркирана сега:

$ git таг -n1
Release-20190401 Актуализиран README.md
Release-20190402 Добавен таг към по-стар комит
v1.0.1 Актуализиран README.md
v1.0.2 Моята версия 1.0.2
v1.0.3 Моята версия 1.0.3
v1.0.4 Добавена функция 2

Премахване на тагове

Да предположим, че решавате, че не искате етикетите „Release-“, тъй като те са объркващи. Първо можете да намерите всички етикети „Release-“:

$ git tag -l Release *
Издание-20190401
Release-20190402

Сега можете да ги премахнете с опцията “-d”:

$ git tag -d Release-20190401
Изтрит таг „Release-20190401“ (беше 34671d8)
$ git tag -d Release-20190402
Изтрит таг „Release-20190402“ (беше 6ee37bc)

Ако проверим етикетите отново, трябва да видим само етикетите, които започват с „v“:

$ git таг -n1
v1.0.1 Актуализиран README.md
v1.0.2 Моята версия 1.0.2
v1.0.3 Моята версия 1.0.3
v1.0.4 Добавена функция 2

Презаписване на тагове

Да предположим, че имаме ситуация, при която „v1.0.4-инчовият маркер насочва към функция 2:

$ git log --oneline
d7b18a4 (HEAD -> master) Добавена функция 3
106e0bb (таг: v1.0.4) Добавена функция 2
161c6e5 Добавена функция 1
34671d8 (таг: v1.0.3, таг: v1.0.2, таг: v1.0.1) Актуализиран README.md
afe9b0c (произход / главен) Init

Но ние искаме етикетът „v1.0.4 ”, за да сочи към функция 3. Ако се опитаме да го маркираме отново, получаваме тази грешка:

$ git таг v1.0.4 d7b18a4
фатално: таг 'v1.0.4 'вече съществува

Можем да преодолеем този проблем с опцията “-f”:

$ git таг -f v1.0.4 d7b18a4
Актуализиран таг 'v1.0.4 '(беше 106e0bb)

Ако проверим дневника отново, виждаме, че тагът се е преместил в желания от нас коммит:

$ git log --oneline
d7b18a4 (HEAD -> master, tag: v1.0.4) Добавена функция 3
106e0bb Добавена функция 2
161c6e5 Добавена функция 1
34671d8 (таг: v1.0.3, таг: v1.0.2, таг: v1.0.1) Актуализиран README.md
afe9b0c (произход / главен) Init

Като алтернатива можете също да изтриете маркер и да го добавите отново към нов ангажимент.

Споделяне на етикети с други потребители

Когато натиснете кода си в отдалеченото хранилище, Git таговете не се изтласкват автоматично. Ако искате да споделите своите маркери с други потребители, трябва да ги натискате изключително.

Етикетите могат да се натискат по следния начин:

$ git push origin v1.0.4
Преброяване на обекти: 12, готово.
Делта компресия с използване на до 4 нишки.
Компресиране на обекти: 100% (4/4), готово.
Писане на обекти: 100% (12/12), 902 байта | 150.00 KiB / s, готово.
Общо 12 (делта 0), повторно използвана 0 (делта 0)
До / Users / zakh / _work / LearnGIT / git_tagging / remote / project_mayhem
* [нов маркер] v1.0.4 -> v1.0.4

Сега, ако други потребители клонират отдалеченото хранилище, те ще видят само маркера, който е бил изтласкан („v1.0.4 ”в случая).

Използване на клонове срещу етикети

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

В заключение

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

Допълнително проучване:

  • https: // git-scm.com / book / en / v2 / Git-Basics-Tagging
  • https: // софтуерен инженеринг.обмен на стекове.com / questions / 165725 / git-разклоняване-и-маркиране-най-добри практики
  • https: // www.атласки.com / git / tutorials / inspecting-a-repository / git-tag
  • https: // en.wikipedia.org / wiki / Software_versioning
  • https: // www.techopedia.com / definition / 25977 / версиране на софтуер
Най-добрите игри за игра с ръчно проследяване
Oculus Quest наскоро представи страхотната идея за ръчно проследяване без контролери. С непрекъснато нарастващия брой игри и дейности, които изпълнява...
Как да покажете OSD наслагване в приложения на цял екран за Linux и игри
Играта на цял екран или използване на приложения в режим на цял екран без разсейване може да ви откъсне от съответната системна информация, видима в п...
Топ 5 карти за залавяне на игри
Всички сме виждали и обичаме поточни игри в YouTube. PewDiePie, Jakesepticye и Markiplier са само някои от най-добрите геймъри, които са спечелили мил...