整理自廖雪峰git教程,原教程:https://www.liaoxuefeng.com/wiki/896043488029600/897889638509536
git log --pretty=online
单行显示log
git checkout --file
撤销对工作区的修改,即没有add之前,使用此命令可以撤销文件修改,add后就要用reset
要注意--file,如果没有--,就为切换分支命令
不仅修改,撤销删除操作也可以使用此命令
git reset HEAD file
把暂存区的修改撤销,即把暂存区的修改回退到工作区。
原理就是此时HEAD指针指向的文件是commit后的库中最新的文件,把HEAD的文件覆盖到file中
git reset --hard HEAD^
回退到上一个版本,依此类推 HEAD^^^^,reset 用于对commit的撤销
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区
so,if you had git add a file,but want to withdraw,the peocess is:
git reset HEAD filename
git checkout --filename
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
git reflog
如果从21世纪回退到了19世纪,而且原来的terminal已经关闭了,但是后悔穿越到19世纪了,所以用这个命令查看21世纪的id
git diff HEAD -- xx.txt
查看工作区和版本库里面最新版本的区别, stage为暂存区
删除文件操作:
rm file
git rm file
git commit -m "xxx"
注意:git rm 和git add的效果是一样的,一个增文件,一个减文件
git config --global core.autocrlf false
关闭git的自动lf转为crlf,linux下换行符为lf,win下为crlf