0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p><strong>Git</strong>- распределённая система контроля версий, позволяющая сохранять изменения, внесённые в файлы, которые хранятся в репозитории. Сами изменения сохраняются в виде снимков, называемых коммитами. Они могут размещаться на разных серверах, поэтому вы всегда восстановите код в случае сбоя, а также без проблем откатитесь до любого предыдущего состояния. Кроме того, значительно<strong>облегчается взаимодействие с другими разработчиками</strong>: несколько человек могут работать над одним репозиторием одновременно, сохраняя свои изменения.</p>
1
<p><strong>Git</strong>- распределённая система контроля версий, позволяющая сохранять изменения, внесённые в файлы, которые хранятся в репозитории. Сами изменения сохраняются в виде снимков, называемых коммитами. Они могут размещаться на разных серверах, поэтому вы всегда восстановите код в случае сбоя, а также без проблем откатитесь до любого предыдущего состояния. Кроме того, значительно<strong>облегчается взаимодействие с другими разработчиками</strong>: несколько человек могут работать над одним репозиторием одновременно, сохраняя свои изменения.</p>
2
<p>Git имеет множество плюсов, поэтому считается незаменимым инструментом для всех, кто работает в сфере разработки ПО. В этой статье мы рассмотрим, когда используется Git, изучим наиболее полезные<strong>Git-команды</strong>. Если Git вам уже знаком, вы сможете освежить свои знания.</p>
2
<p>Git имеет множество плюсов, поэтому считается незаменимым инструментом для всех, кто работает в сфере разработки ПО. В этой статье мы рассмотрим, когда используется Git, изучим наиболее полезные<strong>Git-команды</strong>. Если Git вам уже знаком, вы сможете освежить свои знания.</p>
3
<h2>Как работать с Git?</h2>
3
<h2>Как работать с Git?</h2>
4
<p>В Git имеется много команд, поэтому разобьём их по теме и причине использования. Но начнём с того, что рассмотрим работу Git на локальной машине, ведь большая часть операций происходит именно там. После этого перейдём к многопользовательскому формату.</p>
4
<p>В Git имеется много команд, поэтому разобьём их по теме и причине использования. Но начнём с того, что рассмотрим работу Git на локальной машине, ведь большая часть операций происходит именно там. После этого перейдём к многопользовательскому формату.</p>
5
<p>Вообще, с Git можно работать и через графический интерфейс (например, GitHub Desktop), и через командную строку. Командную строку изучить необходимо хотя бы потому, что она предоставляет больше возможностей, чем некоторые инструменты с интерфейсом.</p>
5
<p>Вообще, с Git можно работать и через графический интерфейс (например, GitHub Desktop), и через командную строку. Командную строку изучить необходимо хотя бы потому, что она предоставляет больше возможностей, чем некоторые инструменты с интерфейсом.</p>
6
<p>Обычно, команды Git имеют следующий вид:</p>
6
<p>Обычно, команды Git имеют следующий вид:</p>
7
git <команда> <аргументы><p>В качестве аргумента может быть путь к файлу. Также у команд бывают опции, обозначаемые --<опция> либо -<однобуквенная опция>. Они обеспечивают более<strong>детальную настройку</strong>действия команды. В нашем материале команды будут представлены в общем виде, а значит всё, что будет в <>, вы можете менять на собственные значения.</p>
7
git <команда> <аргументы><p>В качестве аргумента может быть путь к файлу. Также у команд бывают опции, обозначаемые --<опция> либо -<однобуквенная опция>. Они обеспечивают более<strong>детальную настройку</strong>действия команды. В нашем материале команды будут представлены в общем виде, а значит всё, что будет в <>, вы можете менять на собственные значения.</p>
8
<p>Кстати, если возникают затруднения с использованием той либо иной команды, рекомендуется открыть руководство посредством git help <команда>. Если просто нужно напоминание, применяйте git <команда> -h либо git <команда> --help (в Git -h и --help имеют одинаковое значение).</p>
8
<p>Кстати, если возникают затруднения с использованием той либо иной команды, рекомендуется открыть руководство посредством git help <команда>. Если просто нужно напоминание, применяйте git <команда> -h либо git <команда> --help (в Git -h и --help имеют одинаковое значение).</p>
9
<h2>Установка Git</h2>
9
<h2>Установка Git</h2>
10
<p>Если вы пользуетесь Windows, качайте Git<a>отсюда</a>. Что касается macOS, то здесь Git поставляется как часть инструмента командной строки<strong>XCode</strong>. Наличие Git можно проверить, открыв терминал и набрав git --version. Для Linux используйте команду sudo apt install git-all либо sudo dnf install git-all.</p>
10
<p>Если вы пользуетесь Windows, качайте Git<a>отсюда</a>. Что касается macOS, то здесь Git поставляется как часть инструмента командной строки<strong>XCode</strong>. Наличие Git можно проверить, открыв терминал и набрав git --version. Для Linux используйте команду sudo apt install git-all либо sudo dnf install git-all.</p>
11
<h2>Настраиваем конфигурационный файл</h2>
11
<h2>Настраиваем конфигурационный файл</h2>
12
<p>Сразу после установки Git нужно настроить имя пользователя и email, ведь они используются для идентификации. Данные настройки будут сохранены в конфигурационном файле.</p>
12
<p>Сразу после установки Git нужно настроить имя пользователя и email, ведь они используются для идентификации. Данные настройки будут сохранены в конфигурационном файле.</p>
13
<p>Вы можете отредактировать файл .gitconfig напрямую с помощью редактора или, используя команду git config --global --edit. Чтобы отредактировать отдельные поля, подойдёт git config --global <поле> <значение> - здесь нас интересуют поля<strong>user.email</strong>и<strong>user.name</strong>.</p>
13
<p>Вы можете отредактировать файл .gitconfig напрямую с помощью редактора или, используя команду git config --global --edit. Чтобы отредактировать отдельные поля, подойдёт git config --global <поле> <значение> - здесь нас интересуют поля<strong>user.email</strong>и<strong>user.name</strong>.</p>
14
<p>Кроме того, есть возможность настройки текстового редактора для написания сообщений коммитов - это поле<strong>core.editor</strong>. По умолчанию применяется системный редактор. Поле<strong>commit.template</strong>служит для указания шаблона, который будет задействоваться при каждом коммите.</p>
14
<p>Кроме того, есть возможность настройки текстового редактора для написания сообщений коммитов - это поле<strong>core.editor</strong>. По умолчанию применяется системный редактор. Поле<strong>commit.template</strong>служит для указания шаблона, который будет задействоваться при каждом коммите.</p>
15
<p>Есть и много других полей, но самое полезное -<strong>alias</strong>(привязывает команду к псевдониму). К примеру, git config --global alias.st "status -s" позволит использовать<strong>git st</strong>вместо<strong>git status -s</strong>.</p>
15
<p>Есть и много других полей, но самое полезное -<strong>alias</strong>(привязывает команду к псевдониму). К примеру, git config --global alias.st "status -s" позволит использовать<strong>git st</strong>вместо<strong>git status -s</strong>.</p>
16
<p>А git config --list выведет все поля с их значениями из конфигурационного файла.</p>
16
<p>А git config --list выведет все поля с их значениями из конфигурационного файла.</p>
17
<h2>Создание Git-репозитория</h2>
17
<h2>Создание Git-репозитория</h2>
18
<p>Чтобы инициализировать новый репозиторий<strong>.git</strong>используют команду git init. Если хотите скопировать уже существующий репозиторий - git clone <адрес репозитория>.</p>
18
<p>Чтобы инициализировать новый репозиторий<strong>.git</strong>используют команду git init. Если хотите скопировать уже существующий репозиторий - git clone <адрес репозитория>.</p>
19
<h2>История коммитов в Git</h2>
19
<h2>История коммитов в Git</h2>
20
<p>Git хранит имеющиеся данные в виде набора "снимков", называемых<strong>коммитами</strong>. Коммиты хранят состояние файловой системы в конкретный момент времени, а также имеют указатель на предыдущие коммиты. Каждый коммит содержит уникальный контрольный идентификатор, который используется<strong>Git</strong>, чтобы ссылаться на этот коммит. Для отслеживания истории Git хранит указатель<strong>HEAD</strong>, указывающий на 1-й коммит.</p>
20
<p>Git хранит имеющиеся данные в виде набора "снимков", называемых<strong>коммитами</strong>. Коммиты хранят состояние файловой системы в конкретный момент времени, а также имеют указатель на предыдущие коммиты. Каждый коммит содержит уникальный контрольный идентификатор, который используется<strong>Git</strong>, чтобы ссылаться на этот коммит. Для отслеживания истории Git хранит указатель<strong>HEAD</strong>, указывающий на 1-й коммит.</p>
21
<p>Ссылаться можно как через контрольную сумму коммита, так и через его позицию относительно HEAD. К примеру,<strong>HEAD~4</strong>будет ссылаться на коммит, находящийся 4-мя коммитами ранее HEAD.</p>
21
<p>Ссылаться можно как через контрольную сумму коммита, так и через его позицию относительно HEAD. К примеру,<strong>HEAD~4</strong>будет ссылаться на коммит, находящийся 4-мя коммитами ранее HEAD.</p>
22
<h2>Система файлов в Git</h2>
22
<h2>Система файлов в Git</h2>
23
<p>Git может отслеживать файлы в 3-х основных разделах: - рабочая директория (речь идёт о файловой системе вашего ПК); - область подготовленных файлов (это<strong>staging area</strong>, где хранится содержание следующего коммита); -<strong>HEAD</strong>(последний в репозитории коммит).</p>
23
<p>Git может отслеживать файлы в 3-х основных разделах: - рабочая директория (речь идёт о файловой системе вашего ПК); - область подготовленных файлов (это<strong>staging area</strong>, где хранится содержание следующего коммита); -<strong>HEAD</strong>(последний в репозитории коммит).</p>
24
<h2>Как просматривать изменения в файловых системах?</h2>
24
<h2>Как просматривать изменения в файловых системах?</h2>
25
<p>Для этого используют команду git status. Она отображает все файлы, которые различаются между 3-мя отделами. Файлы имеют четыре состояния: 1)<strong>untracked</strong>(неотслеживаемый). Находится в рабочей директории, но его нет ни в HEAD, ни в области подготовленных файлов. Можно сказать, что Git о нём не знает; 2)<strong>modified</strong>(изменён). В рабочей директории находится его более новая версия по сравнению с той, которая хранится в HEAD либо в области подготовленных файлов (при этом изменения не находятся в следующем коммите); 3)<strong>staged</strong>(подготовлен). В области подготовленных файлов и в рабочей директории есть более новая версия, если сравнивать с хранящейся в HEAD, но файл уже готов к коммиту; 4)<strong>без изменений</strong>. Во всех разделах содержится одна версия файла, то есть в последнем коммите находится актуальная версия.</p>
25
<p>Для этого используют команду git status. Она отображает все файлы, которые различаются между 3-мя отделами. Файлы имеют четыре состояния: 1)<strong>untracked</strong>(неотслеживаемый). Находится в рабочей директории, но его нет ни в HEAD, ни в области подготовленных файлов. Можно сказать, что Git о нём не знает; 2)<strong>modified</strong>(изменён). В рабочей директории находится его более новая версия по сравнению с той, которая хранится в HEAD либо в области подготовленных файлов (при этом изменения не находятся в следующем коммите); 3)<strong>staged</strong>(подготовлен). В области подготовленных файлов и в рабочей директории есть более новая версия, если сравнивать с хранящейся в HEAD, но файл уже готов к коммиту; 4)<strong>без изменений</strong>. Во всех разделах содержится одна версия файла, то есть в последнем коммите находится актуальная версия.</p>
26
<p>Чтобы посмотреть не изменённые файлы, а непосредственно изменения, можно использовать: - git diff - для сравнения рабочей директории с областью подготовленных файлов; - git diff --staged - для сравнения области подготовленных файлов с HEAD.</p>
26
<p>Чтобы посмотреть не изменённые файлы, а непосредственно изменения, можно использовать: - git diff - для сравнения рабочей директории с областью подготовленных файлов; - git diff --staged - для сравнения области подготовленных файлов с HEAD.</p>
27
<p>В случае применения аргумента <файл/папка><strong>diff</strong>покажет изменения лишь для указанных вами папок или файлов, к примеру:</p>
27
<p>В случае применения аргумента <файл/папка><strong>diff</strong>покажет изменения лишь для указанных вами папок или файлов, к примеру:</p>
28
<h2>Игнорирование файлов</h2>
28
<h2>Игнорирование файлов</h2>
29
<p>Иногда нам не надо, чтобы Git отслеживал все файлы в репозитории, ведь в их число могут входить: - файлы с конфиденциальной информацией; - огромные бинарные файлы; - специфичные файлы; - файлы сборок, генерируемые после каждой компиляции.</p>
29
<p>Иногда нам не надо, чтобы Git отслеживал все файлы в репозитории, ведь в их число могут входить: - файлы с конфиденциальной информацией; - огромные бинарные файлы; - специфичные файлы; - файлы сборок, генерируемые после каждой компиляции.</p>
30
<p>Для игнорирования предусмотрен файл<strong>.gitignore</strong>, где отмечаются файлы для игнорирования.</p>
30
<p>Для игнорирования предусмотрен файл<strong>.gitignore</strong>, где отмечаются файлы для игнорирования.</p>
31
<h2>Коммиты</h2>
31
<h2>Коммиты</h2>
32
<p>Основой истории версий являются коммиты. Для работы с ними используют git commit - эта команда откроет текстовый редактор для ввода сообщения коммита. Кроме того, она принимает следующие аргументы: •<strong>-m</strong>- позволяет написать сообщение, не открывая редактор, то есть вместе с командой; •<strong>-a</strong>- служит для переноса всех отслеживаемых файлов в область подготовленных файлов и включения их в коммит (даёт возможность перед коммитом пропустить<strong>git add</strong>); •<strong>--amend</strong>- заменяет последний коммит новым изменённым коммитом. Это бывает полезно, когда вы неправильно наберёте сообщение последнего коммита либо забудете включить в него нужные файлы.</p>
32
<p>Основой истории версий являются коммиты. Для работы с ними используют git commit - эта команда откроет текстовый редактор для ввода сообщения коммита. Кроме того, она принимает следующие аргументы: •<strong>-m</strong>- позволяет написать сообщение, не открывая редактор, то есть вместе с командой; •<strong>-a</strong>- служит для переноса всех отслеживаемых файлов в область подготовленных файлов и включения их в коммит (даёт возможность перед коммитом пропустить<strong>git add</strong>); •<strong>--amend</strong>- заменяет последний коммит новым изменённым коммитом. Это бывает полезно, когда вы неправильно наберёте сообщение последнего коммита либо забудете включить в него нужные файлы.</p>
33
<p>Ряд советов по коммитам: - коммитьте часто; - одно изменение - один коммит, но не коммитьте слишком незначительные изменения (в большом репозитории они могут засорить историю); - комментируя сообщение о коммите, логически дополняйте фразу<strong>this commit will ___</strong>и не используйте более 50 символов.</p>
33
<p>Ряд советов по коммитам: - коммитьте часто; - одно изменение - один коммит, но не коммитьте слишком незначительные изменения (в большом репозитории они могут засорить историю); - комментируя сообщение о коммите, логически дополняйте фразу<strong>this commit will ___</strong>и не используйте более 50 символов.</p>
34
<h2>Удалённые серверы</h2>
34
<h2>Удалённые серверы</h2>
35
<p>Мы можем хранить, отслеживать и обновлять историю коммитов не только на локальной машине, но и на удалённых репозиториях. По сути, можно говорить об облачных бэкапах нашей истории коммитов.</p>
35
<p>Мы можем хранить, отслеживать и обновлять историю коммитов не только на локальной машине, но и на удалённых репозиториях. По сути, можно говорить об облачных бэкапах нашей истории коммитов.</p>
36
<p>Для вывода списка удалённых репозиториев нужна команда git remote -v. С её помощью мы не только загружаем копию репозитория, но и отслеживаем удалённый сервер, находящийся по указанному адресу (ему присваивается имя<strong>origin</strong>).</p>
36
<p>Для вывода списка удалённых репозиториев нужна команда git remote -v. С её помощью мы не только загружаем копию репозитория, но и отслеживаем удалённый сервер, находящийся по указанному адресу (ему присваивается имя<strong>origin</strong>).</p>
37
<p>Другие часто употребляемые команды: • git remote add <имя> <url> - добавляется удалённый репозиторий с заданным именем; • git remote remove <имя> - удаляется удалённый репозиторий с заданным именем; • git remote rename <старое имя> <новое имя> - переименовывается удалённый репозиторий; • git remote set-url <имя> <url> - репозиторию с именем присваивается новый адрес; • git remote show <имя> - показывается информация о репозитории.</p>
37
<p>Другие часто употребляемые команды: • git remote add <имя> <url> - добавляется удалённый репозиторий с заданным именем; • git remote remove <имя> - удаляется удалённый репозиторий с заданным именем; • git remote rename <старое имя> <новое имя> - переименовывается удалённый репозиторий; • git remote set-url <имя> <url> - репозиторию с именем присваивается новый адрес; • git remote show <имя> - показывается информация о репозитории.</p>
38
<p>Следующий список нужен для работы с удалёнными ветками: • git fetch <имя> <ветка> - для получения данных из ветки заданного репозитория; • git pull <имя> <ветка> - сливает данные из ветки; • git push <имя> <ветка> - для отправления изменения в ветку заданного репозитория. Когда локальная ветка отслеживает удалённую, достаточно использовать git push или git pull.</p>
38
<p>Следующий список нужен для работы с удалёнными ветками: • git fetch <имя> <ветка> - для получения данных из ветки заданного репозитория; • git pull <имя> <ветка> - сливает данные из ветки; • git push <имя> <ветка> - для отправления изменения в ветку заданного репозитория. Когда локальная ветка отслеживает удалённую, достаточно использовать git push или git pull.</p>
39
<p>В результате несколько человек могут запрашивать с сервера изменения, выполнять изменения в локальных копиях, а потом отправлять их на удалённый сервер. Всё это позволяет<strong>легко взаимодействовать между собой</strong>в пределах одного репозитория.</p>
39
<p>В результате несколько человек могут запрашивать с сервера изменения, выполнять изменения в локальных копиях, а потом отправлять их на удалённый сервер. Всё это позволяет<strong>легко взаимодействовать между собой</strong>в пределах одного репозитория.</p>
40
<h2>Ветвление в Git</h2>
40
<h2>Ветвление в Git</h2>
41
<p>Ключевая особенность Git -<strong>ветвление</strong>, позволяющее работать над разными версиями проекта. Таким образом, вместо одного перечня с упорядоченными коммитами история может расходиться в некоторых точках, поэтому становится похожей на дерево. И каждая ветвь содержит в Git легковесный указатель HEAD, указывающий на последний коммит в данной ветке. В результате можно легко создать много веток. Делая это, называйте ветки согласно разрабатываемой функциональности. Ветку по умолчанию называют<strong>master</strong>.</p>
41
<p>Ключевая особенность Git -<strong>ветвление</strong>, позволяющее работать над разными версиями проекта. Таким образом, вместо одного перечня с упорядоченными коммитами история может расходиться в некоторых точках, поэтому становится похожей на дерево. И каждая ветвь содержит в Git легковесный указатель HEAD, указывающий на последний коммит в данной ветке. В результате можно легко создать много веток. Делая это, называйте ветки согласно разрабатываемой функциональности. Ветку по умолчанию называют<strong>master</strong>.</p>
42
<p>Что ж, у нас есть HEAD для каждой ветки и общий указатель HEAD. Переключение между ветками предполагает лишь перемещение HEAD в HEAD соответствующей ветки.</p>
42
<p>Что ж, у нас есть HEAD для каждой ветки и общий указатель HEAD. Переключение между ветками предполагает лишь перемещение HEAD в HEAD соответствующей ветки.</p>
43
<p>Стандартные команды при ветвлении в<strong>Git</strong>: • git branch <имя ветки> - для создания новой ветки с HEAD, указывающим на HEAD. Если аргумент <имя ветки> передан не будет, команда выведет список всех имеющихся локальных веток; • git branch -d <имя ветки> - для удаления ветки; • git checkout <имя ветки> - для переключения на эту ветку. Если хотим создать новую ветку перед переключением, можем передать опцию -b.</p>
43
<p>Стандартные команды при ветвлении в<strong>Git</strong>: • git branch <имя ветки> - для создания новой ветки с HEAD, указывающим на HEAD. Если аргумент <имя ветки> передан не будет, команда выведет список всех имеющихся локальных веток; • git branch -d <имя ветки> - для удаления ветки; • git checkout <имя ветки> - для переключения на эту ветку. Если хотим создать новую ветку перед переключением, можем передать опцию -b.</p>
44
<p>И локальный, и удалённый репозиторий могут иметь много веток, поэтому при отслеживании на деле отслеживается удалённая ветка, то есть<strong>git clone</strong>привязывает ветвь master к ветви origin/master удалённого репозитория.</p>
44
<p>И локальный, и удалённый репозиторий могут иметь много веток, поэтому при отслеживании на деле отслеживается удалённая ветка, то есть<strong>git clone</strong>привязывает ветвь master к ветви origin/master удалённого репозитория.</p>
45
<p>Парочка команд для привязывания к удалённой ветке: • git branch -u <имя удалённого репозитория>/<удалённая ветка> -текущая ветка привязывается к указанной удалённой ветке; • git checkout --track <имя удалённого репозитория>/<удалённая ветка> - аналогично; • git checkout -b <ветка> <имя удалённого репозитория>/<удалённая ветка> - создаётся новая локальная ветвь и начинает отслеживать удалённую; • git checkout <удалённая ветка> - создаётся локальная ветвь с таким же именем, как и у удалённой, плюс начинает её отслеживать; • git branch --vv - служит, чтобы показать локальные и отслеживаемые удалённые ветки.</p>
45
<p>Парочка команд для привязывания к удалённой ветке: • git branch -u <имя удалённого репозитория>/<удалённая ветка> -текущая ветка привязывается к указанной удалённой ветке; • git checkout --track <имя удалённого репозитория>/<удалённая ветка> - аналогично; • git checkout -b <ветка> <имя удалённого репозитория>/<удалённая ветка> - создаётся новая локальная ветвь и начинает отслеживать удалённую; • git checkout <удалённая ветка> - создаётся локальная ветвь с таким же именем, как и у удалённой, плюс начинает её отслеживать; • git branch --vv - служит, чтобы показать локальные и отслеживаемые удалённые ветки.</p>
46
<h2>Совмещение веток</h2>
46
<h2>Совмещение веток</h2>
47
<p>Обсудив возможности по переключению, можно поговорить, как ветки совмещать после разработки. Ветку, в которую мы желаем слить изменения, назовём основной, а ветвь, из которой будем сливать, - тематической. Существуют 2 способа внести изменения - перемещение и слияние.</p>
47
<p>Обсудив возможности по переключению, можно поговорить, как ветки совмещать после разработки. Ветку, в которую мы желаем слить изменения, назовём основной, а ветвь, из которой будем сливать, - тематической. Существуют 2 способа внести изменения - перемещение и слияние.</p>
48
<h2>Слияние</h2>
48
<h2>Слияние</h2>
49
<p>Включает в себя создание нового коммита, основанного на общем коммите-предке 2-х ветвей, указывает на оба HEAD. Для осуществления слияния нужно перейти на основную ветки и использовать команду git merge <тематическая ветка>.</p>
49
<p>Включает в себя создание нового коммита, основанного на общем коммите-предке 2-х ветвей, указывает на оба HEAD. Для осуществления слияния нужно перейти на основную ветки и использовать команду git merge <тематическая ветка>.</p>
50
<p>Когда обе ветки меняют одну и ту же часть файла, возникает<strong>конфликт слияния</strong>. В этой ситуации Git не понимает, какую версию файла нужно сохранить. Разрешать конфликт следует вручную. Для просмотра конфликтующих файлов, используйте git status.</p>
50
<p>Когда обе ветки меняют одну и ту же часть файла, возникает<strong>конфликт слияния</strong>. В этой ситуации Git не понимает, какую версию файла нужно сохранить. Разрешать конфликт следует вручную. Для просмотра конфликтующих файлов, используйте git status.</p>
51
<p>Маркеры разрешения конфликта:</p>
51
<p>Маркеры разрешения конфликта:</p>
52
<<<<<<< HEAD:index.html Everything above the ==== is the version in master. ======= Everything below the ==== is the version in the test branch. >>>>>>> test:index.html<p>В этом блоке надо заменить всё на версию, которую хотите оставить, после чего подготовить файл. Разрешив все конфликты, можно завершать слияние, используя git commit.</p>
52
<<<<<<< HEAD:index.html Everything above the ==== is the version in master. ======= Everything below the ==== is the version in the test branch. >>>>>>> test:index.html<p>В этом блоке надо заменить всё на версию, которую хотите оставить, после чего подготовить файл. Разрешив все конфликты, можно завершать слияние, используя git commit.</p>
53
<h2>Перемещение</h2>
53
<h2>Перемещение</h2>
54
<p>Осуществляется вместо совмещения 2-ух веток коммитом слияния. Перемещение заново воспроизводит коммиты тематической ветви в виде набора новых коммитов базовой ветви, что обеспечивает более чистую историю коммитов.</p>
54
<p>Осуществляется вместо совмещения 2-ух веток коммитом слияния. Перемещение заново воспроизводит коммиты тематической ветви в виде набора новых коммитов базовой ветви, что обеспечивает более чистую историю коммитов.</p>
55
<p>Чтобы выполнить перемещение, используют команду git rebase <основная ветка> <тематическая ветка>. Она воспроизводит изменения тематической ветви на основной. При этом HEAD тематической ветви указывает на последний воспроизведённый коммит.</p>
55
<p>Чтобы выполнить перемещение, используют команду git rebase <основная ветка> <тематическая ветка>. Она воспроизводит изменения тематической ветви на основной. При этом HEAD тематической ветви указывает на последний воспроизведённый коммит.</p>
56
<p>Совет: перемещайте изменения лишь на вашей приватной локальной ветке. Не стоит перемещать коммиты, от которых ещё кто-то зависит.</p>
56
<p>Совет: перемещайте изменения лишь на вашей приватной локальной ветке. Не стоит перемещать коммиты, от которых ещё кто-то зависит.</p>
57
<p>Если хотите<strong>откатить коммит</strong>: - git revert <коммит> - создаёт новый коммит, который отменяет изменения, но сохраняет историю; - git reset <коммит> - перемещает указатель HEAD, и создаёт более чистую историю, как будто коммита никогда не было. Но это также значит, что вы не сможете вернуться обратно к изменениям, если решите, что отмена была лишней. В общем, чище - не значит лучше!</p>
57
<p>Если хотите<strong>откатить коммит</strong>: - git revert <коммит> - создаёт новый коммит, который отменяет изменения, но сохраняет историю; - git reset <коммит> - перемещает указатель HEAD, и создаёт более чистую историю, как будто коммита никогда не было. Но это также значит, что вы не сможете вернуться обратно к изменениям, если решите, что отмена была лишней. В общем, чище - не значит лучше!</p>
58
58