Скачиваний:
19
Добавлен:
17.06.2023
Размер:
11.74 Mб
Скачать

Ветвление в гит

Для создания новой ветки необходимо выполнить следующую команду:

После чего будет создана новая ветка с именем testing. Для просмотра имеющихся веток и того, на какой ветке мы сейчас находимся, используется команда:

Head – это указатель, который показывает на какой ветке мы сейчас находимся. Также текущая ветка указывается в скобках синим цветом (в данном случае это master). Из рисунка видно, что имеется 2 ветки: master, на которой находится указатель, и testing, созданная нами ветка.

Для перехода между ветками используется команда git checkout ИмяВетки. Перейдем на созданную нами ветку.

После выполнения команды в скобках поменялось название ветки с master на testing, что говорит о том, что мы перешли на созданную нами ветку.

Теперь, в папке proba1 создадим новый файл new.txt и внесем в него любой текст. После чего также добавим любой текст в файл tak.txt. После чего выполним команду git status.

Видим, что файл tak.txt отмечен как измененный, а файл new.txt является не отслеживаемым. Переведем данные файлы в состояние, готовое к коммиту и совершим фиксацию.

Директория и файлы после совершения коммита на ветке testing имеют следующий вид:

Переключим ветку назад, все файлы вернутся в состояние того старого коммита «add file».

Теперь передадим все изменения с ветки testing на ветку master, для этого, находясь на ветке master выполним команду git merge testing:

Произошло слияние ветки testing в ветку master. Теперь все файлы находятся в состоянии, соответствующему последнему коммиту «commit on branch testing» (содержимое файлов аналогично последнему коммиту).

Если бы мы находились на ветке testing и произвели бы слияние (git merge master), тогда произошло бы все наоборот, и проект вернулся бы в состояние первого коммита: файл new.txt и одна строка в файле tak.txt не были бы сохранены (утеряны).

Более подробно про ветвление в Git описано в теоретическом введении файла «Лабораторная работа 1».

Git на сервере

Удаленный репозиторий — это обычно голый (чистый, bare) репозиторий ― репозиторийGit, не имеющий рабочего каталога. Поскольку этот репозиторий используется только для обмена, то нет причин создавать рабочую копию файлов на диске, и он содержит только данные Git.

Проще говоря, голый репозиторий содержит только каталог .git вашего проекта и ничего больше.

Git умеет работать с четырьмя сетевыми протоколами для передачи данных: локальный, HTTP, SecureShell (SSH) и Git. В этой части мы обсудим каждый из них, и в каких случаях стоит (или не стоит) его использовать.

Локальный протокол

Базовым протоколом является Локальный протокол, при использовании которого удаленный репозиторий ― другой каталог на диске. Наиболее часто он используется, если все члены команды имеют доступ к общей файловой системе, например к NFS, или, что менее вероятно, когда все работают на одном компьютере. Последний вариант не столь хорош, поскольку все копии вашего репозитория находятся на одном компьютере, делая возможность потерять всё более вероятной.

Если у вас смонтирована общая файловая система, вы можете клонировать, отправлять и получать изменения из локального репозитория. Чтобы клонировать такой репозиторий или добавить его в качестве удаленного в существующий проект, используйте путь к репозиторию в качестве URL. Например, для клонирования локального репозитория вы можете выполнить что-то вроде этого:

$ git clone /opt/git/project.git

Или этого:

$ git clone file:///opt/git/project.git

Git работает немного по-другому, если вы явно укажете префикс file:// в начале вашего URL. Когда вы просто указываете путь, Git пытается использовать жесткие ссылки и копировать файлы, когда это нужно. Если вы указываете file://, Git работает с данными так же, как при использовании сетевых протоколов, что в целом — менее эффективный способ передачи данных. Причиной для использования file:// может быть необходимость создания чистой копии репозитория без лишних внешних ссылок и объектов, обычно после импорта из другой системы управления версиями или чего-то похожего. Мы будем использовать обычные пути, поскольку это практически всегда быстрее.

Чтобы добавить локальный репозиторий в существующий проект, вы можете воспользоваться командой:

$ git remote add local_proj /opt/git/project.git

Теперь вы можете отправлять и получать изменения из этого репозитория так, как вы это делали по сети.

Установка Git на клиентском и серверном компьютере описана в файле «Лабораторная работа 1».

Примечание:

При использовании базового локального протокола, чтобы эффективно вести контроль версий проекта в составе команды на нескольких компьютерах необходимо сделать на каждом из компьютеров папку, доступную для всех (название этой папки лучше сделать одинакоковой). Именно в эти папки и будут клонироваться (копироваться) репозитарии.