Вернуть изменения из ветки git в ветку master - PullRequest
2 голосов
/ 30 октября 2019

Я работаю на языке Ruby on rails, у меня есть ветка user-micropost. Внутри этой ветки я создал файлы, изменил файлы и выполнил миграцию базы данных.

Я где-то напутал, поэтому я хотел бы восстановить код, который в данный момент находится на GitHub, или вернуть код в состояние до создания этой новой ветви.

Будет ли этодостаточно сделать:

git checkout master, а затем git branch -d branch-name?

Или это только удалит ветку, но не отменит изменения?

Я не зафиксировал, поэтому все изменения локальны в IDE. (я использую AWS Cloud9 IDE)

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Поскольку вы не выполнили git add <file> (все ваши изменения локальны в вашей IDE), ваши изменения должны быть в неустановленных / неотслеживаемых файлах. Вы можете подтвердить это, если запустите команду git status.

Существует 3 варианта отмены локальных изменений в вашей IDE.

  1. Отмените все локальные изменения, но сохраните их для возможного повторного использования позже: git stash
  2. Отменить все локальные изменения (навсегда) для файла: git checkout -- <file>
  3. Отменить все локальные изменения для всех файлов навсегда: git reset --hard

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

Для получения дополнительной информации: https://docs.gitlab.com/ee/topics/git/numerous_undo_possibilities_in_git/#undo-local-changes

0 голосов
/ 30 октября 2019

Поскольку вы не зафиксировали свои изменения, вы можете оформить основную ветку и удалить новую ветку, как вы предлагали. Увы, ваши неутвержденные изменения все еще будут вокруг! Так как они не были зафиксированы в первую очередь, они просто остаются в вашем рабочем каталоге. Чтобы избавиться от них, вам нужно сбросить весь рабочий каталог с помощью команды, подобной git reset --hard HEAD. Это отменит все изменения и сбросит на HEAD вашей текущей ветки (которая будет master).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...