суббота, 11 мая 2024 г.

Git ветки

Ветка (branch) возможность иметь несколько путей разработки, потом ветки можно объединять.
Ветки создаются под разработку в которой код временно не рабочий.

Здесь разберем случае когда изменения не будут конфликтовать друг с другом.

git branch new
создали новую ветку new

git branch

покажет какие ветки есть в наличие, звездочкой помечена активная ветка

допустим мы накоммитили в ветку master, ветка new при этом находится в той точке где она и была заведена

git checkout new

сменили активную ветку, теперь в git branch звездочкой будет помечена ветка new

и теперь накоммитим сюда. только создадим другие файлы чтобы изменения не конфликтовали. На этом этапе у нас есть две ветки разработки у которых где-то в прошлом есть общий коммит. Но на текущий момент это две параллельные ветки. Когда мы говорим git branch, то в каталоге .git/refs/heads заводится еще один файл с названием как у ветки, в котором содержится commit id на вершину нового фронта разработки

Когда используют ветки:

  • совместная разработка
  • схема devel - testing - production
  • разработка временно ухудшающая качество
git checkout master
git merge new (можно указать commit id указав некоторую точку в дереве с которой хотим померджиться)

операция merge сопровождается специальным commit'ом, который называется merge commit



git reflog

показывает все коммиты в том числе и потерянные пока мы не сделаем repack 

вместо команды merge можно было сделать:
git checkout new
git rebase master
это rebase new поверх master


git checkout master

git merge new

здесь merge commit уже не создается потому что история после rebase стала линейная нам нечего сливать, мы просто подвигаем фронт под названием master к тому месту где был фронт под названием new

 

git rebase --interactive HEAD~5

интерактивный rebase последних 5 коммитов. rebase это переписывание истории его лучше делать на том что мы еще не запушили, если мы rebase' нули то что уже запушили нам потом придется  делать force push и те люди которые с вами синхронизируются пострадают.

 

Комментариев нет:

Отправить комментарий