学习廖雪峰Git教程后对Git知识点的一些总结(4)

本系列文章为学习廖雪峰Git教程之后的学习笔记
本系列文章:
学习廖雪峰Git教程后对Git知识点的一些总结(1)
学习廖雪峰Git教程后对Git知识点的一些总结(2)
学习廖雪峰Git教程后对Git知识点的一些总结(3)
点击这里进入廖雪峰Git教程

多人协作

当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

推送分支

推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上:

$ git push origin master

但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

多人协作的工作模式通常是:

  1. 首先,可以试图用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
  3. 如果合并有冲突,则解决冲突,并在本地提交;
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
  5. 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git
    branch --set-upstream-to <branch-name> origin/<branch-name>

创建标签

在Git中打标签非常简单,敲命令git tag <name>就可以打一个新标签:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
可以用命令git tag查看所有标签
学习廖雪峰Git教程后对Git知识点的一些总结(4)
默认标签是打在最新提交的commit上的。

有时候,如果忘了打标签,想为之前提交的打标签,怎么办?
方法是找到历史提交的commit id,然后打上就可以了:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
比方说要对merge bug 101这次提交打标签,它对应的commit id是840a060,敲入命令并用命令git tag查看标签:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
可以用git show <tagname>查看标签信息
学习廖雪峰Git教程后对Git知识点的一些总结(4)
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
用命令git show <tagname>可以看到说明文字:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

操作标签

对标签的删除
学习廖雪峰Git教程后对Git知识点的一些总结(4)
因为创建的标签都只存储在本地,不会自动推送到远程。所以,打错的标签可以在本地安全删除。

如果要推送某个标签到远程,使用命令git push origin <tagname>
学习廖雪峰Git教程后对Git知识点的一些总结(4)
或者,一次性推送全部尚未推送到远程的本地标签:
学习廖雪峰Git教程后对Git知识点的一些总结(4)
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除,然后,从远程删除。
学习廖雪峰Git教程后对Git知识点的一些总结(4)