git commit 命令
git commit 命令保留所有当前暂存的更改。
提交用于捕获项目的当前状态。
提交的快照被视为项目的安全版本,因为 Git 在更改它们之前会询问。
git add 命令提升对项目的更改,然后在执行 git commit 命令之前将这些更改存储在提交中。
--amend 选项更改最后一次提交。
分阶段修改被添加到之前的提交中。
此参数打开系统配置的文本编辑器并更改先前指定的提交消息。
git reset 命令
git reset 命令用于撤消更改。
它传递 HEAD 引用指针和当前分支引用指针。
--soft 参数更新引用指针并停止重置。
但是,它不会影响暂存索引和工作目录。
软重置仅重置提交历史记录。
默认情况下,它以 HEAD 作为目标提交调用。
git rm 命令
git rm 命令从 git 存储库中删除特定文件或者文件集合。
git rm 的主要功能是从暂存区(也称为索引)中删除被跟踪的文件。
git rm 还用于从暂存索引和工作目录中删除文件。
但是不能仅从工作目录中删除文件。
但是, git rm 不会删除分支。
从以前的提交中删除文件
让我们讨论我们的第一个场景。
以下是我们需要做的:
删除文件并保留在桌面上
如果我们只想从上一次提交中删除文件并将其保留在磁盘上,则 git reset 命令可以提供帮助:
git reset --soft HEAD^
或者
git reset --soft HEAD~1
重置文件
然后,我们可以重置不再需要从提交中删除它们的文件:
git reset HEAD path/to/unwanted_file
提交
我们可以再次 git commit 甚至使用相同的提交消息:
git commit -c ORIG_HEAD
从上次提交中删除文件
第二个场景讨论的是我们最后一次提交时的情况,并且我们想删除该文件。
从索引中删除文件
我们可以使用 git rm 命令从暂存区删除文件。
--cached 选项指示要从缓存区域中删除的文件:
git rm --cached <file>
提交更改
完成修改后,我们可以使用 --amend 选项再次提交更改:
git commit --amend
检查文件
如果完成工作,我们可以检查文件是否已从存储库中删除并且未出现在新文件中:
git ls-files <file1> <file2>
有时,我们将文件暂存以进行提交并希望从提交中删除文件以进行更多修改。
在本教程中,我们将讨论一些场景,展示如何有效地从 Git 提交中删除文件。