简介
🧑💻 初次接触 Git 或 LabEx?我们建议你从 Git 快速入门 课程开始学习。
Git 是一个强大的版本控制系统,它允许开发者追踪代码库中的变更。在 Git 中,一项常见的任务是从最后一次提交中移除某个文件。当你不小心将一个本不打算包含的文件添加到最后一次提交中时,这会很有用。
🧑💻 初次接触 Git 或 LabEx?我们建议你从 Git 快速入门 课程开始学习。
Git 是一个强大的版本控制系统,它允许开发者追踪代码库中的变更。在 Git 中,一项常见的任务是从最后一次提交中移除某个文件。当你不小心将一个本不打算包含的文件添加到最后一次提交中时,这会很有用。
你不小心将一个本不打算包含的文件添加到了最后一次提交中。你希望在不更改提交消息的情况下,将该文件从最后一次提交中移除。
在本次实验中,我们使用来自 https://github.com/labex-labs/git-playground 的仓库。假设你有一个名为 git-playground 的 Git 仓库,其中有一个名为 file2.txt 的文件,你不小心将其添加到了最后一次提交中。以下是将该文件从最后一次提交中移除的步骤:
git clone https://github.com/labex-labs/git-playground
cd git-playground
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
git rm --cached <文件> 从暂存区移除指定的 <文件>:git rm --cached file2.txt
git commit --amend 更新最后一次提交的内容,同时不更改其提交消息:git commit --amend --allow-empty
如果删除文件后提交变为空提交,则使用 --allow-empty,否则可以省略。
运行这些命令后,文件 file2.txt 将从最后一次提交中移除,且提交消息不会改变。
这是当你从 Git 版本控制系统中移除 file2.txt 时发生的情况:
位于主分支
待提交的变更:
(使用 "git restore --staged <文件>..." 取消暂存)
删除:file2.txt
未跟踪的文件:
(使用 "git add <文件>..." 将其包含在将提交的内容中)
file2.txt
在使用 Git 时,从最后一次提交中移除文件是一项很实用的技能。通过使用 git rm --cached <文件> 和 git commit --amend 命令,你可以轻松地从最后一次提交中移除文件,而无需更改其提交消息。