远程分支和标签

远程分支

默认的,远程数据库只有一个master分支,可以在远程数据库创建其他的分支,也可以在本地数据库使用命令,将本地的分支推送到远程分支

如果push的时候,没有指定远程的地址,默认会使用名称为 origin的地址

如果push的时候,没有指定远程的分支,默认会使用master分支

推送本地分支到远程

命令push可以将本地所在的分支推送到指定的远程分支

在lmonkey中操作

$ git checkout develop

$ git push origin develop

如果远程没有这个分支,会自动创建这个分支

拉取远程分支到本地

在lmonkey2中操作

由于lmonkey把自己的develop分支推送到了远程数据库,而lmonkey2的本地数据库并没有这个develop分支,可以基于原始数据库中的develop分支来创建develop分支:

$ git checkout -b develop origin/develop

git checkout -b <new branch> <from branch> 可以创建并切换分支,如果不写最后一个参数,默认以当前所在分支为基础创建新的分支

在lmonkey中操作

新建文件 新功能.txt,并提交到数据库:

$ cd ../lmonkey

$ echo '新功能' >> 新功能.txt

$ git status

在使用git status 的时候,中文文件名可能会出现如\231\121\121的样子,对Git重新设置一下即可:

$ git config --global core.quotepath off

最后提交到本地数据库,并推送到远程的develop分支:

$ git add.

$ git commit -m "新功能"

$ git push origin develop

在lmonkey2中操作

使用pull可以拉取远程分支到本地

$ git pull origin develop

注意

这个拉取操作,会把远程develop分支合并到当前所在的分支,因为pull = fetch + merge

拉取远程分支,还可以使用fetch 命令:

$ git fetch

$ git merge origin develop

如果两个分支没有共同祖先,无法直接合并,此时可以使用 git pull origin master --allow-unrelated-histories

如果是 fetch 了之后再合并也是一样的 git fetch origin master git merge origin/master --allow-ubrelated-histories

标签

标签是为了更方便地参考提交而给它标上易懂的名称。

Git可以使用 2 种标签: 轻标签和注解标签。打上的标签是固定的不能像分*样可以移动位置。

轻标签

使用tag命令来添加标签,在<tagname> 执行标签的名称

$ git tag <tagname>
  • 添加名称

注解标签

若要添加注解标签,可以在tag命令指定 -a选项执行。执行后会启动编辑区,请输入注解,也可以指定-m选项来添加注解。

$ git tag -a <tagname>
  • 添加名称
  • 添加注解
  • 添加签名

一般情况下,发布标签是采用注解标签来添加注解或签名的,轻标签是为了在本地暂时使用或一次性使用

远程分支和标签

事前准备

首先建立一个新目录,并在里面建立一个空数据库。这里我创建了一个名为lmonkey的目录

$ mkdir lmonkey

$ cd lmonkey

$ git init

初始化数据库之后,我们在创建一个myfile.txt的档案,然后提交:

$ echo '学习Git' >> myfile.txt

$ git add myfile.txt

$ git commit -m "first commit"

目前的历史记录是这样的

远程分支和标签

添加轻标签

HEAD 指向的提交里添加名为apple的标签:

$ git tag apple

如果没有使用参数而执行 tag, 可以显示标签列表

$ git tag

//标签列表

如果在 log 命令添加 --decorate选项执行,可以显示包含标签资料的历史记录:

$ git log --decorate

//包含标签资料的历史记录

远程分支和标签

添加注解标签

HEAD指向的提交里添加名为banana的标签,请执行以下的命令。

$ git tag -am "学习Git" banana

如果在tag命令指定-n选项执行,可以显示标签的列表和注解。

$ git tang -n

// 标签的列表和注解

删除标签

若要删除标签,在tag命令指定 -d选项执行。

$ git tang -d <tagname>

远程分支和标签

应用

以某个标签为基础,新建并切换一个新分支:

$ git checkout -b <branchName> <tagName>

因为 tag 本身指向的就是一个 commit , 所以和根据 commitid 检出分支是一个道理

$ git checkout -n <branchName> <commitid> 可以已提交id为基础新建并切换出一个新分支

上一篇:springboot使用jmh基准测试评估json反序列化、实体转换的性能差异


下一篇:第1章Java开发环境搭建