Почему мои команды git не отменяют мои локальные изменения? - PullRequest
0 голосов
/ 24 мая 2018

Я работаю над проектом Ruby и только что принял несколько плохих решений о миграции и сущностях.

Хорошо, я получу содержимое своей основной ветки и переопределю плохую работу, которую я сделал.

Я использую:

git fetch --all
git reset --hard origin/master

Но файлы, которые я добавил локально, все еще там.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Секрет здесь в том, чтобы использовать git clean -f, чтобы удалить все не подготовленные файлы.

0 голосов
/ 24 мая 2018

Вам не нужно сбрасывать, когда вы ничего не фиксировали (как я полагаю, дело в этом).

Просто позвоните git checkout ., чтобы избавиться от любых незафиксированных изменений.

Длинная история такова:

Git хранит изменения в несколько «этапов».

  • Когда вы изменяете файл, то это неустановленное изменение, верните его с помощью git checkout <changed_file> или git checkout . для каждого файла
  • когда вы создаете файл git add <filename> или часть файла даже git add -p, тогда он называется так называемым поэтапным, готовым к фиксации.Вы все еще можете вернуться к git reset HEAD <file>
  • , когда вы фиксируете, коммит создается в вашей локальной ветке, это когда вы используете
    • git reset origin/master, чтобы избавиться от коммитов,но оставьте изменения (назад к первому пункту)
    • git reset --hard origin/master такими же, как указано выше, но отмените все изменения

Так что для вашего случая, чтобыизбавиться от локальных, незафиксированных изменений: git checkout . и, если у вас есть какие-то коммиты, которые вам не нужны git reset --hard origin/master

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