Git rm删除文件
从版本库中删除该文件,那就用命令git rm
删掉,并且git commit
:
1 | $ git rm file |
现在,文件就从版本库中被删除了。
如果删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:
1 | $ git checkout -- test.txt |
git checkout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
还有一种情况是如何从版本库中删除,而不删除本地文件:
对于单个文件:
1 | $ git rm --cached mylogfile.log |
对于单个目录:
1 | $ git rm --cached -r mydirectory |
git rm和rm的区别
直接在工作区删除文件对暂存区和版本库没有影响,但是如果使用git rm命令删除文件,那么删除动作将加入暂存区,这时执行提交命令,就从真正意义上执行了文件删除。不过,不要担心,文件只是在版本库的最新提交中被删除了,在历史提交中尚在。
git push存在大文件报错
git push
时,存在大文件会报错,即使删除大文件后,还会报错。主要是因为大文件存在没有被提交的commit记录里面。
解决方案:删除有大文件的commit记录即可
1、git status
查看未被传送到远程代码库的提交状态
2、git cherry -v
查看未被传送到远程代码库的提交描述和说明
3、git reset commit_id
撤销未被传送到远程代码库的提交
移除大文件:
1 | $ git rm --cached giant_file(文件名) |