Git hard reset не восстанавливает локальные файлы - PullRequest
2 голосов
/ 04 июня 2019

У меня есть ветвь функций, назовем ее функцией / 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 как-то сломана?

1 Ответ

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

Вы на самом деле все сделали правильно.

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

Можете ли вы также проверить изменения в коде из терминала, чтобы убедиться, что он действительно не изменился?

...