* не бери в голову, git reset --hard HEAD~1
похоже на трюк. (Я собирался удалить вопрос, но я думаю, что обсуждение в комментариях полезно). *
Извините, что задаю такой простой вопрос, но я не могу найти вопрос о моей конкретной ситуации.
Я использую git для резервного копирования проекта, с которым я работаю поочередно на работе и дома, используя репозиторий, который находится на Github. Поэтому в конце каждого сеанса работы (будь то на работе или дома) я набираю:
git add .
git commit -m "what I did today"
git push -u origin master
, затем, когда начинаю сеанс (на работе или дома), я набираю:
git fetch
git merge
К сожалению, вчера днем на работе я набрал git add
и git merge
, но забыл git push
. Затем я работал дома (в более ранней версии), и сделал git push
эти изменения. Сейчас я на работе утром, и git отказывается объединить изменения из дома и дает бесполезный (для меня) совет, как решить эту проблему.
Когда я забыл даже поставить и зафиксировать изменения на работе днем ранее, исправить легко: я перемещаю новые рабочие файлы во временный каталог, git fetch
и git merge
изменения, которые я сделал дома (что происходит чисто, потому что в отношении git , на работе нет ничего, что заменяет домашние файлы, которые я объединяю), а затем вручную объединяю их. Проблема в том, что я уже совершил (но не выдвинул) вчерашнюю дневную сессию на работе.
Поэтому я думаю, что самое простое, что нужно сделать, это отменить вчерашние дневные изменения. Но как мне это сделать? И мне нужно также "извлечь" версию, которую я получил этим утром?
Так что после осмотра кажется, что простой uncommit (когда фиксация сделана по ошибке):
git reset --hard HEAD~1
Но теперь, когда я также сделал git fetch
, этот совет меняется, например, мне нужно go вернуться к HEAD~2
вместо HEAD~1
или что-то в этом роде?