GITHUB Flashcards

1
Q

Што претставува Source (Version) Control?

A

Source control е витална компонента од животниот циклус за развој на софтвер. Овозможува:

Пратење на промени, преглед на историја на промени, интеграција со околини за развој на софтвер, автоматизација, итн.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Познати Source Control Management системи?

A

Git, Subversion, Mercurial, Perforce, CVS..

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Точно или грешно:

Постојат локални, централни и дистрибуирани VCS системи.

A

Точно.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Што е git и што овозможува?

A

Git e version control system кој се корист за пратење на промени во изворниот код за време на развој на софтвер.

Овозможува:

Колаборативна работа на повеќе девелопери, работа на различни гранки, навраќање на претходни верзии, итн.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Кои се трите главни состојби во кои можат да бидат фајловите на git?

A

Modified, staged и commited.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Кога го обележуваме променетиот фајл и ја спремаме неговата моментална верзија за следниот commit, од која во која состојба преминува фајлот?

A

Преминува од modified во staged.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Што претставува состојбата commited?

A

Податоците се безбедно зачувани во нашата локална база на податоци

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Со која команда се иницијализира репозиториум во веќепостоечка дадотека?

A

git init

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

За што се користи git add?

A

За променетите документи да преминат од modified во staged

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Со која команда се прави commit?

A

git commit

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Како да провериме дали состојбата на гранката во репозиториумот е во тек со локалната база?

A

git status

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Животен циклус на датотеките?

A

Untracked -> (add file) -> staged
Unmodified -> (edit) -> modified -> (stage) -> staged
Staged -> (commit) ->unmodified
Unmodified -> (removed) -> untracked

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Со која команда се проверува краток статус на гранка?

A

git status -s

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Која наставка ја има датотеката која кажува какви датотеки да не се прикачуваат на репозиториумот?

A

.gitignore

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Доколку сакаме да корегираме скорашен commit која команда се користи?

A

git commit –amend

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

За што се користи git reset HEAD <file>?</file>

A

За да се тргне датотека од staged состојба

17
Q

Доколку сакаме да вратиме верзија на конкретна датотека кон верзијата од последниот комит, која команда се користи?

A

git checkout – <file>
или git restore <file></file></file>

18
Q

Разлика помеѓу:
git checkout – <file>
и
git reset HEAD <file></file></file>

A

Со git checkout датотеката се враќа во unmodifed верзија, поради тоа што се зема верзијата на датотеката од последниот commit.

Додека, со reset датотеката останува иста на локалната машина, но само се враќа од staged состојба во modifed. Се користи кога сакаме да исклучиме некоја датотека од следниот commit.

19
Q

Како ги чува git податоците?

A

Како серии на snapshots.

20
Q

Што содржи commit објектот?

A

Commit објектот содржи:
Покажувач кон snapshot на содржината која е staged.
Име и мејл на авторот.
Пораката на комитот.
Покажувачи кон родителите на комитите кои се направени директно пред моменталниот.

21
Q

Што е гранка?

A

Гранка во git е покажувач кон некој комит.

22
Q

Како git знае на која гранка момоментално работиме?

A

Постои специјален покажувач: HEAD, кој покажува кон гранката (покажувач) на која работиме.

23
Q

Како се прават нови гранки на git?

A

git checkout -b <newbranchname>
git switch -c <newbranchname></newbranchname></newbranchname>

24
Q

Кога се прави merge, што означува фразата fast-forward?

A

Snapshot-от на новиот branch е директно поврзан со другиот, па оној branch на кој ги спојуваме промените само се поместува на snapshot-от до него.

25
Q

Доколку имаме конфликт после обид за спојување на две гранки, дали после корекцијата автоматски ќе се спојат гранките?

A

Откако рачно ќе ги корегираме конфликтите, потребно е да се направи git commit за да се заврши спојувањето на гранките.

26
Q

GitLab Flow

A

Првиот дел на овој workflow е планирање. Опфаќа неколку делови: проблеми, merge requests, epics, milestones, iterations, release, etc.

Во issues се дефинираат проблемите или нови работи во апликацијата. За проблемите се пишува опис.

Во merge requests се развиваат решенијата. Можат да се креираат самостојно или директно од некој issue. Доколку се merge-не поврзаниот issue автоматски се затвора.

Milestones се користат за тимовите да си дефинираат цели. Се групираат и организираат issues со merge requests. Обично служат за пратење на напредок на проектот и може да се поврзат со конкретен release.

По решавање на проблеми и завршување на merge requests со pipelines промените се прикачуваат соодветно…

УШТЕ ИМА!

27
Q

GitFlow

A

Централниот репозиториум има две гранки: master и develop. Во master гранката секогаш треба да има код спремен за продукција.

Feature гранките: може да се разгрануваат од master гранката, но мора да се спојуваат со develop.

Се прави нова гранка.
Се менува гранката.
Се префрламе на develop гранката.
Се спојуваат новата гранка со develop.
Од develop или master гранката се прави release гранка.
Се спојува release со master и develop.

28
Q

GitHub Flow

A

○ Fork the project.
○ Create a topic branch from master.
○ Make some commits to improve the project.
○ Push this branch to your GitHub project.
○ Open a Pull Request on GitHub.
○ Discuss, and optionally continue committing.
○ The project owner merges or closes the Pull Request.
○ Sync the updated master back to your fork.