Git教学篇2-git日常操作之git clone与git tag

前言

在上一篇文章《 》中,我们讲解了git config相关内容。

这篇文章我们继续Git教学第二篇-git的基础操作,很多官方文档中的内容往往讲的太细致在实际中并不常用,这里我会过滤掉它们而选择那些常用的内容进行讲解,争取让大家能快速的掌握git。

Git教学篇2-git日常操作之git clone与git tag

git

基础操作1-远程仓库

在git中存在一个仓库的概念,表示的是一个项目的文件集合。

  • clone

在安装,配置完git后,首要的应该就是去clone远程仓库了,命令是git clone [url],url是每个git仓库都会提供的。

下面以我自己的github项目为例进行演示。在github项目仓库的中间有个clone or download按钮,点击一下就会出现一个框,里面包含的是项目clone的url。

Git教学篇2-git日常操作之git clone与git tag

git clone的url

然后我们在本地目录下进入一个文件夹,运行git clone命令。

Git教学篇2-git日常操作之git clone与git tag

git clone

运行完成后,会自动创建一个以github仓库名为名称的文件夹,进入到这个文件夹后可以看到里面的文件就是仓库中所包含的文件了。

  • git clone -b

在git clone操作中,git会默认拉取仓库master分支上的文件,所以当我们运行git branch时只能看到一个master分支。

Git教学篇2-git日常操作之git clone与git tag

git branch

在大多数情况下,我们常用的操作是clone master分支上的文件,然后对应创建个人开发分支,测试分支等等。

但是有的时候我们却不需要这么做,假如master分支已经遗弃很久,我们需要直接clone其他的分支该怎么办呢?

我们可以通过-b参数去clone特定的分支。

我们通过运行git clone -b dev [url]去clone只包含dev分支的文件。

Git教学篇2-git日常操作之git clone与git tag

git clone -b

基础操作2-打标签

通过git打标签在实际开发中也是很常见的一个操作,一个标签往往是一个版本号的内容。比如一期项目的封版与上线,都会有一个特定的版本号,同时在线上发现问题进行hotfix时,也会进行版本号的修改。


在git中通过tag命令进行标签相关的操作。

  • 查看所有标签

在所在的项目目录下运行git tag可以查看当前所有的标签。

Git教学篇2-git日常操作之git clone与git tag

git tag

  • 查看感兴趣的标签

如果一个项目下的标签太多,而你只对其中的几个感兴趣,可以通过-l选项进行过滤。

如下是过滤出v1.8.5相关的版本。

$ git tag -l 'v1.8.5*' v1.8.5 v1.8.5.1 v1.8.5.2 v1.8.5.3 v1.8.5.4
  • 创建标签

通过-a选项我们可以创建一个标签,同时通过-m选项指定一条存储在标签中的信息,这里的-m类似于git commit的-m。

如下这条命令就可以给项目打一个标签了,表示当前项目版本号为v1.4。

git tag -a v1.4 -m 'v1.4'
  • 补充标签

假如在某次提交时,你忘了对项目打标签,这个时候可以针对某次提交进行打标签操作。

首先需要通过git log --pretty=oneline命令查看所有的提交历史。

$ git log --pretty=oneline 0b7434e add a function 4682c3a add a file 166ae0c write support 9fceb02 updated rakefile 964f16d commit the todo 8a5cbc4 updated readme

假如我们需要在964f16d提交记录上打一次标签。

可以通过运行以下这条命令。

$ git tag -a v1.2 964f16d
  • 推送标签

在git push操作时默认是不会推送tag标签的,所以需要通过命令--tags选项专门推送tag标签。

$ git push origin --tags

推送成功后,我们可以去github上查看到刚才推送的标签。

Git教学篇2-git日常操作之git clone与git tag

推送标签

结束语

今天这篇文章主要是讲解了git clone与git tag相关的操作,大家也可以熟练运用。

下一篇文章将讲到git status与git commit相关的内容,敬请期待~


分享到:


相關文章: