Ответ 1
Вы можете reset в HEAD: git reset --hard HEAD
Я программирую. Я добавляю красивый код и фиксирую его и нажимаю на свое репо:
git add *
git commit
//writes message
git push unfuddle master
Теперь я вхожу и все испортил. Я не выдал команду git, так как я нажимаю красоту. Как заставить мои локальные файлы вернуться к тому, что было совершено?
git pull
говорит, что мое местное репо "обновлено"
git checkout
отскакивает мой экран и, похоже, ничего не меняет.
Чтобы быть ясным: я не пытаюсь изменить мое удаленное репо, просто заставьте мое местное репо выглядеть как сервер.
Мое текущее решение - удалить папку и отменить репо. Это не может быть правильно.
Вы можете reset в HEAD: git reset --hard HEAD
UPDATE:
Лучший способ сделать это -
git stash -u
Не
git reset --hard HEAD
это операция, которая не может быть отменена, и вы действительно можете уничтожить свою работу, если вы не используете машину времени на Mac или новую службу резервного копирования в Windows 8. У Linux может быть такая схема, хотя я не использую один.
Если вы также хотите, чтобы проигнорированные файлы были nuked, вы можете
git clean -xdf
git pull говорит, что мое местное репо "обновлено"
git pull
сообщает вам, что ваш репозиторий обновлен, потому что ваш локальный репозиторий и ваш удаленный репозиторий указывают на то же HEAD (последнее коммит). Это связано с вашим git push
, который синхронизировал пульт с вашим местным репозиторием.
git не сравнивает изменения, которые не были переданы удаленной ветке, когда он решает, что вытащить; таким образом, с точки зрения Gits, локальные и удаленные репозитории находятся в один и тот же момент времени, даже если ваш локальный репозиторий имеет неустановленные изменения (изменения, которые у вас не были git add
ed).
В нижней части этой страницы есть хорошая диаграмма, в которой показано, как работает процесс - вы вносили некоторые изменения, ставили их (запуская git add
), а затем, наконец, передать их в репозиторий (через креативно называемый git commit
).
Чтобы быть ясным: я не пытаюсь изменить мое удаленное репо, просто заставьте мое местное репо выглядеть как сервер.
Другие указали методы для этого:
git reset --hard HEAD
(reset индекс [поэтапные файлы] и рабочее дерево [неустановленные файлы] до последнего фиксации), но стоит понять, чего вы пытаетесь достичь - если бы я знал, как git отслеживал мои файлы в первый раз, когда я испортил свое рабочее дерево, я бы сэкономил много времени.
Поскольку вы еще ничего не совершили, следующая команда будет reset измененными вами файлами:
git checkout .
вы можете попробовать
git stash
git pull origin your-branch
Вы попробовали git checkout -f master
?
Если вы ничего не совершили, вы можете просто сделать $ git reset --hard
. Если вы сделали некоторые вещи, вы можете сделать git reset --hard origin/master
, чтобы вернуться к версии, находящейся на пульте дистанционного управления.
git checkout branchname
git reset --hard c4e0424
git push origin +branchname
Вы можете использовать -soft вместо --hard --hard
вы потеряете свои изменения --soft
оставить ваши измененные файлы фиксации