Git从放弃到入门(三)

? 这是我参与更文挑战的第9天,活动详情查看: 更文挑战

0x00 ? 前言

? Git入门系列文章链接如下,请按照顺序阅读文章 ?。

Git从放弃到入门专栏

本系列文章主要通过示例讲解快速掌握各命令的功能和操作流程,完成Git快速入门。

本文是第三篇,介绍下git命令别名设置,如何获取历史版本,打标签。

0x01 别名

通过设置别名让频繁使用的Git命令更简单、容易、熟悉。

接下来对常用的命令 git statusgit addgit commitgit checkoutgit log 进行缩写设置别名,将复杂的命令变为简单的单词。命令简单容易记忆,输入更简单便捷,避免输入很长的参数选项内容。

Windows 用户

使用命令 git config 设置别名:

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global alias.hist "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short"
git config --global alias.type 'cat-file -t'
git config --global alias.dump 'cat-file -p'
复制代码

Unix/Mac用户

将设置内容到更新至的 $HOME 目录的 .gitconfig 文件中:

...
...
[alias]
    co = checkout
    ci = commit
    st = status
    br = branch
    hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
    type = cat-file -t
    dump = cat-file -p
复制代码

image.png

前文介绍 git log 查看日志时会改变默认格式,设置格式化选型。命令很长,不便记忆输入。

$ git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
复制代码

通过设置别名后,只要输入 git hist即可实现同样功能 ?。

image.png

0x02 git checkout 获取旧版本

使用 git hist(git log) 命令展示提交项目历史记录,查看各版本提交快照的哈希。
image.png

通过命令 git checkout <hash> 将指定版本检出至工作区(Working Directory)。

接下来检出最早版本,查看提交历史纪录获取最早的提交hash值 63120ae,查看切换后文件内容。

$ git checkout 63120ae
$ cat helloworld.html 
复制代码

helloworld.html内容已经改变成最初的。
image.png

git checkout 使仓库处于“分离头指针”(detached HEAD)的状态,这意味着 HEAD (Git 跟踪当前目录应当匹配的那部分)是直接指向提交而非分支。在“分离头指针”状态下,如果你做了某些更改然后提交它们,标签不会发生变化,但你的新提交将不属于任 何分支,并且将无法访问,除非通过确切的提交哈希才能访问。 因此,如果你需要进行更改,比如你要修复旧版本中的错误,那么通常需要创建一个新分支。

切换至master分支最新版本

$ git checkout master
$ cat helloworld.html 
复制代码

git checkout master命令做了两件事。 一是使 HEAD 指回 master 分支,二是将工作目录恢复成 master 分支所指向的快照内容。此时文件内容已经变更至最后一次提交时。

image.png

0x03 git tag 打标签

Git 可以给仓库历史中的某一个提交打上标签,以示重要。 使用这个功能来标记发布结点。

为程序的当前版本打一个 v1 的标签。

$ git tag v1
复制代码

先前版本切换

如果需要检出先前版本。可以使用 v1^ 代替hash查询 , v1^ 来表示“v1版本的上次提交”。也可以使用 v1~1,效果一样。该表示法意为“v1版本之前的最近一次提交”,格式为tag~n,1可以替换成n任意数值 。

$ git checkout v1^
$ cat helloworld.html 
复制代码

image.png

检出后,为当前的版本打一个标记 v1-rc

$ git tag v1-rc
复制代码

只需要输入命令 git tag,列出已有的标签。

$ git tag 
复制代码

image.png

检出标签

尝试在多个标记版本之间切换。

$ git checkout v1
$ git checkout v1-rc
$ git checkout v1
复制代码

image.png

日志中查看标签

使用命令查看提交纪录中标签信息。

$ git hist master --all
复制代码

可以在日志中看到多了两个标签 tag:v1 tag:v1-rc
image.png

0x04 ?参考

Pro Git Online

0x05 关注专栏

此文章已收录到专栏中 ?,可以直接关注。

更多文章继续阅读|系列文章持续更新

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享