1、当前状态查看
git status
查看当前仓库的状态。主要是系统或文件中被修改,但是没有提交的文件。如果想查看具体修改的内容,使用:
git diff
2、查看历史记录
历史详细版本信息:
git log
历史简约版本信息:
git log --pretty=online
简约版本信息例如:
c*19342e35***********e208e8454b0f080ee Merge pull request #8 in PAYP/payresource from paythrift to master
b*4d754678***********bcde53 新生代大小
5*d1597e8e3*************2a13ea596 新生代内存大小优化
7*37e44e*********5d641f406ad90745dba 优化过滤减的日志
其中commit ID(版本号):不是递增式的数字,而是一个是SHA1 用十六进制的数字设计的一个非常大的数字。
3、版本回退
HEAD是当前版本
HEAD^是上一个版本
HEAD^^是上上一个版本
HEAD~100是上100个版本
3.1 操作说明:把当前版本append GPL 回退到上一个版本 add distributed ,使用的指令:git reset
git reset --hard HEAD^
3.2 如果现在后悔了,不想回退,想恢复到原来回退之前的版本,只要在终端没有关闭的情况(可以找到版本号commit id),就可以执行下面的指令:21c32是我的版本号(commit id)
git reset --hard 21c32
说明1:Git 的版本号不需要全部写上,只要版本号的前几位就可以,当然不能太少,要不然Git不知道是那个版本了。
说明2:Git的版本回退速度非常快,原因是:在Git的内部有一个HEAD指针,指向当前的文件,当执行回退动作时,只要把指针指向append GPL即可。
3.2 如果现在后悔了,并且找不到回退之前的版本号(commit id),需要进行如下操作找到之前的版本号:
git reflog
4、工作区和暂存区
说明:.git是一个隐藏的版本库。
5、管理修改
什么是修改:
添加一个字符,删除一个字符,添加一个文件,删除一个文件,添加内容并删除一部分内容等,所有操作都属于修改。
Git是跟踪和管理的修改,而不是文件。
执行下面的指令:
如果第一次执行git add后,然后修改工作去的内容,在执行git commit -m"***",那么本次修改的本地文件的内容是不会上传到版本库中。
原因:git add 操作只会把第一次修改的内容添加到stage区域,而git commit -m“***”只是把第一次添加的修改内容上传到分支上。而第二次修改的内容任然在工作去。
两次修改正确的提交顺序:
1)~add,~commit,~add,~commit
2)~add,~add,~commit
6、撤销修改
6.1)丢弃工作区的修改
git checkout -- readme.txt
上面git checkout -- file中的--是非常关键的字符。如果没有--就会变成分支的切换了。
6.2)丢弃暂存区的修改
git reset HEAD readme.txt #回到了场景5.1中-想丢弃工作区的修改
git checkout -- readme.txt
git reset HEAD file 指令,不仅可以回退版本,还可以把暂存区修改回退到工作区的状态。
6.3)回退版本
前面介绍了回退版本的指令:(使用回退指令的前提条件是:没有将内容提交到远端。)
git reset --hard HEAD^
7、删除文件
git rm readme.txt
git status #查看删除后的文件
另外,当删除文件错误时,需要恢复操作,可以通过下面的指令,恢复到最新版本
git checkout -- readme.txt
命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。