новичок git вопрос: как удалить последний коммит, когда я также сделал выборку - PullRequest
0 голосов
/ 18 марта 2020

* не бери в голову, 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 или что-то в этом роде?

...