在用开发项目的时候,常常会写着写着会发现写错的时候,人生没有后悔药,可是git有啊,大不了从头再来嘛。git
当咱们修改了一个文件,尚未执行git add操做的时候,发现写错的时候.spa
➜ xiaoyan_es_static git:(master) ✗ cat README.md es日志统计查询 我写错了,不想要这行了
咱们能够使用以下命令,回到最后一次提交的版本版本控制
git checkout -- <file>...
执行完git checkout -- README.md 命令后日志
➜ xiaoyan_es_static git:(master) ✗ cat README.md es日志统计查询
当咱们一不当心将代码存入了暂存区code
➜ xiaoyan_es_static git:(master) ✗ git add . ➜ xiaoyan_es_static git:(master) ✗ git status On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.md
咱们能够使用以下命令,回到最后一次提交的版本图片
git reset HEAD <file>...
执行完命令后以下所示开发
➜ xiaoyan_es_static git:(master) ✗ cat README.md es日志统计查询 这行写错了,可是已经存到暂存区了% ➜ xiaoyan_es_static git:(master) ✗ git status On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: README.md no changes added to commit (use "git add" and/or "git commit -a")
当咱们修改的代码已经commit了,咱们只须要执行rem
➜ xiaoyan_es_static git:(master) git reset --hard HEAD^
上一个版本就是HEAD^,上上一个版本就是HEAD^^,固然往上100个版本写100个^比较容易数不过来,因此写成HEAD~100。get
少年,你怎么这么冲动呢博客
当咱们须要删除暂存区或分支上的文件, 同时工做区也不须要这个文件了, 能够使用
git rm file_path git commit -m 'delete somefile' git push
当咱们须要删除暂存区或分支上的文件, 但本地又须要使用, 只是不但愿这个文件被版本控制, 能够使用
git rm --cached file_path git commit -m 'delete remote somefile' git push
当咱们对文件或者文件夹执行过chmod操做时,执行git diff会出现相似' old mode xxx new mode xxx',这个时候咱们只须要执行以下命令便可
git config --add core.filemode false
这样你的全部的git库都会忽略filemode变动了~
更多文章欢迎关注博客:https://www.zplxjj.com 和公众号