ГОЛОВА отделена на ша1 - PullRequest
       8

ГОЛОВА отделена на ша1

0 голосов
/ 21 июня 2019

У меня есть ветка (mybranch) с 6 коммитами.После 6 коммитов я хочу отменить последние 3 коммита.Итак, я проверил ша, используя git checkout 3978bf85d8a05653c927cfabdf8c018167faf363. Я вижу, что последние 3 коммита отменены.Теперь я хочу обновить mybranch этим.Как я могу это сделать?

(hase) root@ajain1:~/hase# git status
HEAD detached at 3978bf8
nothing to commit, working directory clean

Ответы [ 3 ]

4 голосов
/ 21 июня 2019

Если вы хотите «заставить» определенную ветку указывать на конкретный коммит / ID, вы можете просто сделать:

git checkout mybranch
git reset --hard 3978bf8

И он обновит mybranch, чтобы указать непосредственно на этот коммит.

1 голос
/ 21 июня 2019

Поскольку ваш HEAD отсоединен и в данный момент указывает на коммит 3978bf8, вы можете создать новую ветвь при коммите. Вы можете объединить эту ветку с вашей веткой mybranch.

git branch new_branch_name
git checkout mybranch 
git merge new_branch_name
1 голос
/ 21 июня 2019

Вы можете найти этот ответ полезным, который объясняет, что новые коммиты должны быть добавлены, чтобы отменить предыдущие коммиты, чтобы сохранить историю ветви.

Один из способов сделать это - вызвать$ git revert --no-commit commitHash на 3 коммитах, которые нужно отменить, и затем вызовите $ git commit -m "the commit message".

Альтернативное решение состоит в извлечении содержимого последнего коммита (давайте назовем его A), который вы не хотите возвращать,и затем передайте это состояние, которое можно сделать с помощью $ git checkout -f A --, за которым следует $ git commit -a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...