版本回退
1. 查看提交日志
显示最近到最远的提交信息:git log
。
显示简易提交信息:git log --pretty=online
。
2. 选择回退的版本
HEAD
是当前版本,HEAD^
是上一个版本,HEAD^^
是上上一个版本,HEAD~100
是上100个版本。
回退到上一个版本的命令:git reset --hard HEAD^
。
3. 取消回退,恢复版本
如果版本回退以后后悔了,可以回到之前的版本,但是需要知道之前的版本的commit id,使用命令:git reset --hard <commit id>
,可以只输入版本号的前几位,由git去进行寻找。
如果忘记之前的版本号,可以通过命令git reflog
寻找查看。
工作区与暂存区
工作区:可以认为是存在在我们电脑上的文件夹。
版本库:工作区中包含着一个隐藏的目录.git,是git的版本库,其中包含着暂存区stage(或者叫index),还有git为我们自动创建的一个分支master,以及指向master的指针HEAD。
git add
命令是把修改内容放入暂存区。
git commit
命令是把暂存区内容提交到当前分支。
修改与删除文件
1. 修改文件
对文件内容的增、删、改,都是对文件的修改。文件经过修改以后,需要进行git add
操作,将修改放入暂存区,准备提交。注意:git commit
命令只会提交暂存区中的修改。
可以使用命令git diff HEAD -- 修改的文件
,查看工作区与最新版本库的差别,以确认修改是否被提交。
2. 撤销修改
情况一:修改内容尚未进入暂存区。使用命令:git checkout --file
可以撤销修改。
情况二:修改内容以及进入缓存区,尚未提交至版本库。使用命令:git reset HEAD <file>
可以将修改退回工作区,记得再使用git checkout --file
进行撤销。
3. 删除文件
删除文件后也存在两种情况:
情况一:确实需要删除文件,两步走:git add/rm <file>
,git commit -m '提交说明'
。
情况二:删错了,后悔了。和撤销修改的命令一样(删除也是修改的一种):git checkout --file
。
如果文件有一定利用价值,建议先提交再删除,因为可以版本回退避免误删。