Как вернуть мой проект к предыдущей версии?[Объясняется простыми словами.] - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь сделать что-то, что мне кажется базовым.

У меня есть удаленный репозиторий (источник) и локальный (главный) репозиторий.

Я сделал:

COMMIT / PUSH 2018-12-10 COMMIT / PUSH 2018-12-09 COMMIT / PUSH 2018-12-07 COMMIT / PUSH 2018-12-06 COMMIT / PUSH 2018-12-05

Все, что я хочу сейчас сделать, - сделать так, чтобы мои локальные / и удаленные ветви были в том состоянии, в котором они были: 2018-12-07

Я гуглил и искал все здесь, но ответов так много, используя всевозможные термины, что я понятия не имею, что происходит.Я просто хочу "ОТМЕНИТЬ" то, что было сделано.Как я могу это сделать?Идентификатор моего коммита, к которому я хочу вернуться: e18782b, если это имеет значение.

Я смог выполнить «ПРОВЕРКУ» в этой версии 2018-12-07, поэтому мои локальные файлыименно так, как я хочу, но тогда он не позволит мне перенести его на удаленный, он все время говорит, что сначала нужно запустить pull, после чего я снова возвращаюсь к тому, с чего начал ...

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Прежде всего, давайте уточним некоторые термины и имена:

  • origin - удаленный репозиторий
  • local - локальный репозиторий
  • master - имя по умолчанию для главной ветви репозитория
  • origin/master - локальная копия master ветви из origin репо

Здесь master не особенный, насколько это касается самого git.Однако, это должно быть обработано специально вашими процессами и сохранено как стабильная версия вашего проекта.Другие ветки должны быть созданы для продолжения работы и объединены в master только после завершения работы.

Чтобы ответить на ваш вопрос, вы можете оформить ветку, которую хотите сбросить, сбросить ее, а затем нажать на * 1023.*:

git checkout master
git reset --hard e18782b
git push -f

Вы можете заменить master на соответствующее название ветви.Обратите внимание, что при этом будут отменены все коммиты за e18782b, поэтому убедитесь, что вы действительно не хотите этих изменений.Кроме того, он отбросит все локальные изменения, которые не были зафиксированы.Коммиты, которые вы выбрасываете, могут быть восстановлены с небольшой работой, но незафиксированные локальные изменения не могут быть восстановлены с помощью git.

0 голосов
/ 19 декабря 2018

Это, на практике, избавит вас от того, что вы сделали после e18782b, если вы уже работаете с локальной веткой, которую хотите взломать :

git reset --hard e18782b
git push origin -f <name-of-branch>

Сделатьубедитесь, что в вашем рабочем дереве нет отложенных изменений, потому что git reset --hard избавится от них.

...