У меня есть ветвь функций, назовем ее функцией / JIRA-1000.
В этой ветке у меня был коммит с сообщением, которое мы можем назвать «Это работает».
После этого я значительно реорганизовал код и зафиксировал изменения как «Рефакторинг».
Однако потом я понял, что я должен был внести изменения как часть другой задачи (JIRA 2000) в отдельную ветку. Поэтому из JIRA я создал новую функцию ветки / JIRA-2000, основанную на функции / JIRA-1000. Таким образом, эта новая ветвь содержала коммит «Это работает» и «Рефакторинг».
Затем я хотел удалить фиксацию «Рефакторинг» из ветки feature / JIRA-1000. Поэтому в Gitkraken я щелкнул правой кнопкой мыши на коммите «Это работает» и выбрал «Сброс -> жесткий».
Я также попробовал это из Git Bash:
$ git checkout feature/JIRA-1000
Already on 'feature/JIRA-1000'
Your branch is up to date with 'origin/feature/JIRA-1000'.
$ git reset --hard f9ef772b188ae359a77804b63a79aa542fd44e6b
HEAD is now at f9ef772 SERDOC-1000 It works
$ git push -f
Everything up-to-date
Но теперь возникает загвоздка: мои локальные файлы не изменены.
Что я делаю не так?
Возможно, Гиткракен что-то напутал, так как, полагаю, у меня были некоторые неустановленные изменения, когда я впервые выполнил команду, и я вижу запись коммита, которая говорит:
Merge remote-tracking branch 'origin/feature/JIRA-1000' into feature/JIRA-1000
вверху моей ветки истории. Но в любом случае, JIRA-2000 - это то, что должно быть сейчас. Я просто не могу вернуть JIRA-1000 обратно так, как я хочу.
Edit:
Я просто случайно повторил полный сброс на ветке JIRA-2000 (новую ветку я не хотел сбрасывать). Хард ресет в этом случае сделал сброс моих локальных изменений.
(К счастью, я смог отменить это путем повторного сброса до фиксации «Рефакторинг»).
Так, может быть, моя ветка JIRA-1000 как-то сломана?