查看提交历史
工作一段时间之后,如果你想查看提交历史,可以使用git log命令
$ git log
按提交时间列出所有的更新,最近的更新排在最上面。
会列出每个提交的 SHA-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 reset --hard HEAD^
–hard会让工作区的文件一起回退
把helloWorldGit.txt文件的最后一行111改成reset test,修改后的文件内容:
修改文件后commit到仓库,然后再用命令git reset --hard HEAD^ 把仓库和工作区的文件一起回退到上一版本。
又回到之前的版本了:
版本找回
用命令git reset --hard HEAD^ 可以找会上一版本,如果是要找会特定版本,或者是版本回退之后后悔了,想回到回退前的版本该怎么做呢?
首先用命令git reflog 查看仓库版本记录,然后用命令 $ git reset --hard 版本id 回到特定版本,
文件内容又修改回来了
撤消工作区修改
$ 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