git进阶

查看提交历史

工作一段时间之后,如果你想查看提交历史,可以使用git log命令

$ git log

按提交时间列出所有的更新,最近的更新排在最上面。
会列出每个提交的 SHA-1 校验和、作者的名字和电子邮件地址、提交时间以及提交说明
git进阶_第1张图片

查看提交历史的其他格式

 $ git log --pretty=oneline 

显示每次提交的简略信息

$ git log –p

显示每次提交的内容差异,可以加上 -1 来仅显示最近一次提交,除了显示基本信息之外,还附带了每次 commit 的变化

$ git log  --stat 

显示每次提交的简略的统计信息

$ git log --since=2.weeks 

列出所有最近两周内的提交,可以设置多种格式,比如说具体的某一天 “2008-01-15”,或者是相对地多久以前 “2 years 1 day 3 minutes ago”。

暂存区和版本库回退

$ git reset HEAD xxxxxxx &&  $ git reset HEAD^ 

git reset 命令使用文件作为参数,或者用^
上一个版本就是HEAD^ ,上上一个版本就是HEAD^^,往上100个版本HEAD~100

修改文件之后添加到暂存区,然后回退暂存区(工作区文件不会回退),如下:
git进阶_第2张图片

$ git reset --hard HEAD^

–hard会让工作区的文件一起回退
把helloWorldGit.txt文件的最后一行111改成reset test,修改后的文件内容:
git进阶_第3张图片
修改文件后commit到仓库,然后再用命令git reset --hard HEAD^ 把仓库和工作区的文件一起回退到上一版本。
git进阶_第4张图片
又回到之前的版本了:
git进阶_第5张图片

版本找回

用命令git reset --hard HEAD^ 可以找会上一版本,如果是要找会特定版本,或者是版本回退之后后悔了,想回到回退前的版本该怎么做呢?
首先用命令git reflog 查看仓库版本记录,然后用命令 $ git reset --hard 版本id 回到特定版本,
git进阶_第6张图片
文件内容又修改回来了
git进阶_第7张图片

撤消工作区修改

$ git checkout – xxxx

如果你并不想保留对 helloWorldGit.txt 文件的修改怎么办?
其实是用版本库或者暂存区里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
如果该文件的修改已经添加到暂存区,那么指令的效果就是暂存区的版本替换掉工作区的版本;如果文件的修改已经commit到仓库中,那么指令的效果就是仓库中的最近版本替换掉工作区的版本。

git别名

$ git config –-global alias.xxx1 xxx2

xxx1为别名,xxx2为git命令

当你经常需要用到一个比较长的命令时,或者想把git命令按你的风格设计,可以给这个命令起一个简短的别名,使你的 Git 体验更简单、容易、熟悉。
Git 并不会在你输入部分命令时自动推断出你想要的命令,如果不想每次都输入完整的 Git 命令,可以通过 git config 文件为每一个命令设置一个别名。

$ git config --global alias.co checkout 
$ git config --global alias.ci commit 
$ git config --global alias.st status

也可以将版本回退这种命令组合生成别名

$ git config --global alias.rsh 'reset HEAD --'

你可能感兴趣的:(git)