在Git中,删除操作也被视为一种修改。下面我们将通过实际操作来演示这一过程。首先,我们向Git中添加一个新的文件test.txt
并提交:
$ git add test.txt
$ git commit -m "Add test.txt"
执行上述命令后,test.txt
文件将被添加到Git的版本库中,并附带一个提交信息,表明我们添加了这个文件。
[master b84166e] Add test.txt
1 file changed, 1 insertion(+)
create mode 100644 test.txt
在大多数情况下,你可能会直接在文件管理器中删除不再需要的文件,或者使用rm
命令来删除它:
$ rm test.txt
当你执行rm
命令后,Git会意识到文件已被删除,因此工作区与版本库之间会出现不一致。你可以通过git status
命令来查看哪些文件已被删除:
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: test.txt
no changes added to commit (use "git add" and/or "git commit -a")
此时,你有两个选择。如果你确实想从版本库中删除这个文件,你应该使用git rm
命令,并提交这次删除操作:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "Remove test.txt"
[master d46f35e] Remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
执行上述git rm
和git commit
命令后,test.txt
文件将从Git的版本库中彻底删除。现在,该文件的所有历史记录都将被移除,并且无法再恢复(除非使用Git的引用日志或其他恢复技术)。
第二种情况:你不小心删错了文件,但不必过于担心,因为Git的版本库中仍然保留着该文件的历史记录。如果你意识到误删了文件并希望恢复到最新版本,可以使用git checkout
命令。这个命令实际上是使用版本库中的版本替换工作区的版本,无论工作区中的文件是被修改还是被删除,都可以通过git checkout
进行“一键还原”。
$ git checkout -- test.txt