Введение
🧑💻 Новый в Git или LabEx? Мы рекомендуем начать с курса Быстрый старт с Git.
Git - это мощная система контроля версий, которая позволяет разработчикам отслеживать изменения в их кодовой базе. Одной из распространенных задач в Git является удаление файла из последнего коммита. Это может быть полезно, когда вы случайно добавили файл в последний коммит, который вы не планировали включать.
Удалить файл из последнего коммита
Вы добавили файл в последний коммит, который вы не планировали включать. Теперь вы хотите удалить этот файл из последнего коммита, не меняя при этом его сообщение.
Для этого лабораторной работы давайте используем репозиторий из https://github.com/labex-labs/git-playground. Предположим, у вас есть репозиторий Git под названием git-playground с файлом file2.txt, который вы случайно добавили в последний коммит. Вот шаги по удалению файла из последнего коммита:
- Клонируйте репозиторий, перейдите в директорию и настройте идентификацию:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "your-username"
git config --global user.email "your-email"
- Используйте
git rm --cached <file>, чтобы удалить указанный<file>из индекса:
git rm --cached file2.txt
- Используйте
git commit --amend, чтобы обновить содержимое последнего коммита, не меняя при этом его сообщение:
git commit --amend --allow-empty
Если коммит становится пустым после удаления файла, используйте --allow-empty, в противном случае можно опустить его.
После выполнения этих команд файл file2.txt будет удален из последнего коммита без изменения его сообщения.
Вот что происходит, когда вы удаляете file2.txt из контроля версий Git:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
deleted: file2.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file2.txt
Резюме
Удаление файла из последнего коммита может быть полезным навыком при работе с Git. Используя команды git rm --cached <file> и git commit --amend, вы можете легко удалить файл из последнего коммита без изменения его сообщения.