GIT Flashcards

1
Q

Что такое Git Flow

A

https://www.atlassian.com/ru/git/tutorials/comparing-workflows/gitflow-workflow

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

rebase vs merge

A

Git Merge и Git Rebase преследуют одну и ту же цель. Они предназначены для интеграции изменений из одной ветки в другую.

Ситуация: отделили фича-ветку от мастера и работаем. Тем временем в мастер добавляются новые коммиты и мы хотим подтянуть эти комиты в нашу ветку.

git checkout feature
git merge master (git merge feature master)
тогда все новшества из мастера попадут в фичу в виде одного отдельного комита не нарушая историю комитов в фича-ветке.
master-branch: MC -> MC -> |
feature-branch: |> FC -> FC -> mergeC -> FC -> mergeC -> FC -> …
Бэстпрактис, если над веткой работают несколько человек.

git checkout feature
git rebase master: git обновит последний комит мастера и привяжет к нему первый комит фичи.
вся история фича-комитов привяжется к последнему коммиту в мастере
master-branch: MC -> MC -> |
feature-branch: |> FC -> FC -> FC -> …

Бэст практис, если я один в ветке или если можно договориться с коллегами: перед мерджем в мастер (pull-request) сквашить все коммиты ветки в 1 + ребейзиться от мастера

Если мы хотим запушить в мастер, но были коммиты между initial pull и текущим моментом, надо скачать main, решить конфликты и тогда уже пушить:
git pull –rebase origin main
-rebase сообщает системе Git, что после синхронизации этой ветки с изменениями из центрального репозитория необходимо переместить все коммиты в конец ветки main

Интетактивный rebase
git rebase -i master

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

cherry pick

A

позволяет перемещать комиты мужду ветками.

git chery-pick hash // вызываем в той ветке, в которую тянем
git chery-pick hash -edit //изменить комит месадж
git chery-pick hash –no-commit //не комитить, просто добавить изменения в workdir

  • bug hotfix - починить фичу в своей ветке и добавить этот комит в мастер
  • перенести нужные комиты из “заброшенных” веток.

master-branch: A -> B -> | -> C -> D -> F
…………………………………………|…………………….|
…………………………………………|…………|>——|
………… feature-branch: |> E -> F -> G ->

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

amend

A

изменить последний комит: гит заменяет последний комит на свежий, хэш поменяется.

git commit –amend

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

revert

A

когда хотим удалить 1 из комитов в истории: создастся новый коммит в конце ветки.
$ git revert commit reference

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

troubleshooting

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