Ввести ветку в историю git - PullRequest
       2

Ввести ветку в историю git

0 голосов
/ 06 сентября 2018

У меня есть репо, и я бы хотел снова разветвлять несколько коммитов.

Допустим, у меня есть коммиты C1, C2, C3, C4, C5 в моей основной ветке.

Я хочу, чтобы мастер остановился, а С3 и С4 начали новую ветвь.

Как бы я это сделал? Я пробовал несколько разных подходов, но мне не повезло.

1 Ответ

0 голосов
/ 06 сентября 2018

Ветвь буквально просто ссылка на один коммит. Все остальное, что вы думаете об этом, является персонификацией. Или древовидная. Если вы хотите, чтобы master ссылался на коммит C3, а ветвь с именем «dev» ссылалась на коммит C5, возможно, самое простое:

git branch dev
git reset ${HASH_OF_C3}

Первая команда создает ветвь в текущем заголовке (C5). Второй сбрасывает текущую ветку (master) для фиксации C3. После этих команд ваш рабочий каталог будет считаться грязным (содержимое всех файлов находится на коммите C5, но у вас в данный момент есть извлечение главной ветки, и оно на C3). Вы можете проверить dev (git checkout dev) или очистить его (git reset --hard). Вы также можете добавить опцию --hard при первом сбросе. Вероятно, вы хотите получить ветку 'dev', поэтому, возможно, вы захотите:

git checkout -b dev   # Create new branch at current commit
git branch -f master ${SHA_OF_C3}  # Make master refer to C3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...