Как программное обеспечение для контроля версий, Git предсказуемо упрощает откат изменений. Но даже концепция отмены изменения сложнее, чем вы думаете. Репозиторий Git - это не совсем то же самое, что набор файлов, над которыми вы работаете локально. Отмена изменений означает рассмотрение того, где именно вы хотите их отменить.
мерзавецпроверить, git сбросить, а также мерзавецвосстановить - это команды, которые могут помочь вам вернуться к предыдущей версии не только вашей кодовой базы, но и отдельных файлов. Узнайте подробности об этих командах, и вы сразу же начнете прыгать по истории файлов, как эксперт.
Что вообще означает сброс файла?
Важно отметить, что сброс файла может означать разные вещи для разных людей в разных обстоятельствах. Так же git сбросить команда может не соответствовать вашим ожиданиям относительно того, что означает сброс.
Иногда вам нужно отменить локальные изменения, чтобы файл снова синхронизировался с текущим репозиторием. В других случаях вам может потребоваться откатить изменения, которые вы уже зафиксировали в репозитории.
Следующие термины являются ключевыми для понимания разницы: рабочее дерево, промежуточная область и репозиторий. Файлы, которые вы редактируете локально, принадлежат рабочему дереву. Файлы, которые вы фиксируете, в конечном итоге попадают в репозиторий. Когда вы собираете изменения, вы размещаете файлы. В каждом из этих расположений файл может иметь разное содержимое.
Смотрите также: Расширенное руководство по Git
Вы можете рассматривать сброс файла как отмену изменений. Но состояние вашего файла будет определять, какие изменения вы на самом деле отменяете. Очевидный случай - когда вы вносите какие-то изменения, фиксируете их, а потом решаете, что они вам больше не нужны.
Другой случай может заключаться в том, что вы разместили файл и теперь хотите отключить его.
Как мне откатить ранее зафиксированный файл?
Давайте рассмотрим случай, который легче понять: вы зафиксировали файл и теперь хотите откатить в него изменения.
Команда Git для этого несколько неинтуитивно названа проверить. Вы могли использовать проверить перед переключением ветвей, но это небольшая часть того, что может делать команда. Это также позволяет вам обновлять файлы в вашем рабочем дереве, чтобы они соответствовали им в любой момент истории репозитория. Вы можете сделать это для определенного тега, ветки или даже для конкретного коммита.
Наиболее полезная универсальная форма этой команды:
git checkout [идентификатор фиксации] - путь / к / файлу
Здесь мы проходим определенный путь (путь / к / файлу), который идентифицирует только один файл. Мы также указываем идентификатор фиксации, чтобы получить файл в том виде, в котором он существовал в этой конкретной фиксации. Эта команда обновит файл только в нашем рабочем дереве.
Обратите внимание, что извлечение более ранней версии файла приводит к изменению рабочей копии без фиксации или даже промежуточной обработки. Чтобы полностью завершить отмену в репозитории, вам нужно подготовить файл и создать новую фиксацию.
Смотрите также: Как просмотреть историю проекта с помощью журнала git
Как мне изменить то, что я ставлю?
Другой тип отмены касается вашей промежуточной области. Он содержит изменения, которые вы будете фиксировать рядом с репозиторием. Если вы подготовили версию файла, а позже решили, что не хотите включать ее в следующую фиксацию, вам нужно сначала отключить ее.
Вы можете использовать git сбросить команда для отмены постановки файла:
git сбросить путь HEAD / к / файлу
Могу ли я быстро отменить локальные изменения?
Да, вы можете отменить изменения в локальном файле до его постановки. Используйте следующую команду:
git checkout - путь / к / файлу
Обратите внимание, что это похоже на откат изменения репозитория, здесь просто опускается идентификатор фиксации. Как только вы выполните эту команду, Git отменит любые изменения в вашей рабочей копии.
А как насчет git restore?
В более поздних версиях Git появилась новая команда: восстановить. Для простых случаев, которые мы здесь обсуждали, вы можете использовать следующие эквиваленты. Чтобы отменить изменение в репозитории:
git restore --source [идентификатор фиксации] путь / к / файлу
Чтобы отключить файл, используйте:
git restore --staged путь / к / файлу
И чтобы отменить изменения рабочей копии:
git восстановить путь / в / файл
Освоение возможностей управления версиями Git бесценно
Хотя сброс файла может показаться обычным делом, на практике вы обнаружите, что это происходит довольно редко. Скорее всего, вы откатите все коммиты, а не отдельные файлы. Однако в тех случаях, когда вам это нужно, Git, по крайней мере, делает это довольно простым.
Используйте эти команды Git для выполнения таких операций, как удаление файла из фиксации.
Читать далее
- Программирование
- GitHub
- Веб-разработка
- Программирование
Бобби - энтузиаст технологий, проработавший разработчиком программного обеспечения большую часть двух десятилетий. Он увлечен играми, работает главным редактором журнала Switch Player Magazine и занимается всеми аспектами онлайн-публикации и веб-разработки.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться