本节主要知识点: 删除文件
直接执行之后执行回退消除仓库中的文件git rm + filemane
命令:
执行rm 命令删除的只是工作目录和暂存区域的文件(即取消跟踪,在下次提交时不纳入版本管理)git reset --soft HEAD~
命令将快照回滚到上一个位置,然后重新提交,Git 就不会再提小黄图的事儿了
如果在工作目录中增加一个 test.py 文件,然后执行
git add test.py
命令将其添加到暂存区域,此时我修改 test.py 文件的内容,那么暂存区域和工作目录就是两个不同的 test.py 文件执行git rm test.py
命令,Git 会下意识地阻止,因为不知道要删除哪个
两个都删除 ------- 执行git rm -f test.py
命令
删除暂存区域的文件(保留工作目录的) ------- 执行git rm --cached 文件名
命令
删除文件(详细步骤) 比如我现在从工作目录中手动删除 README.md 文件,然后执行
git status
命令:文章图片
Git 马上意识到哪里不对劲,赶紧对比一下暂存区域……噢,原来你小子偷偷地把 README.md 删除了丫!
Git 同时提醒使用 checkout 命令可以将暂存区域的文件恢复到工作目录:
文章图片
README.md 又回来了:
文章图片
那么:如何在 Git 中删除文件呢?
假如你不小心把小黄图下载到了工作目录,然后又不小心提交到了 Git 仓库:
文章图片
这下肿么办?让老板看到了这鱿鱼就吃定了……
【Git实用教程|Git实用教程8.1(删除文件)】这时,执行
git rm yellow.jpg
命令,可救你于水深火热之中:文章图片
发现此时工作目录中的小黄图(yellow.jpg)已经被删除……
但执行
git status
命令,你仍然发现 Git 还肯松手:文章图片
Git 的意思是说它在仓库的快照中发现有个叫 yellow 的东西,但似乎在暂存区域和当前目录不见了!
事实证明要从 Git 中真正删除一个文件是件非常麻烦的事儿!
此时,可以执行
git reset --soft HEAD~
命令将快照回滚到上一个位置,然后重新提交,Git 就不会再提小黄图的事儿了:文章图片
注意:rm 命令删除的只是工作目录和暂存区域的文件(即取消跟踪,在下次提交时不纳入版本管理)
还有两种情况你们可能会遇到,比如我在工作目录中增加一个
test.py
文件,然后执行 git add test.py
命令将其添加到暂存区域,此时我修改 test.py 文件的内容,那么暂存区域和工作目录就是两个不同的 test.py 文件了:文章图片
此时如果我执行
git rm test.py
命令,Git 会下意识地阻止我:文章图片
因为两个不同内容的同名文件,根据提示,执行
git rm -f test.py
命令就可以把两个都删除。还有另一种情况就是你可能只想删除暂存区域的文件(保留工作目录的),那么你可以执行
git rm --cached 文件名
命令实现目的。