前言
我们知道一个提交对象就是一个版本,那么我们在某一次版本中具有历史性的突破所以我们需要进行记录一下,在Git中可以利用tag(标签)来进行记录。我们工作的时候是需要伙伴的也就是说我们需要进行远程协作的啦!下面就分别讲述他们的功能以及一些简易操作。
一、Tag
Git可以使用给一个提交对象进行打标签或者说是标记。类似于游戏的版本~
-
列出标签
命令:git tag -
创建标签
轻量标签: 这个标签的功能和分支有点类似,只不过这个标签不能移动。命令:git tag v1.0 [commitHash]
附注标签: 这个标签是存储在Git数据库中的一个完整对象。他们是被检验的;标签会包含打标签的者的名字、电子邮件地址和日期时间;我们通常是创建附注标签,如果你因为某些原因不想保存信息那么是可以选择轻量标签的。
命令:git tag -a v1.1
git tag -a v1.1 commitHash
git tag -a v1.1 commitHash -m "version v1.1"
查看标签: 这个标签的功能和分支有点类似,只不过这个标签不能移动。
命令:git show tagname
删除标签: 这个标签的功能和分支有点类似,只不过这个标签不能移动。
命令:git tag -d tagname
检出标签: 这个标签的功能和分支有点类似,只不过这个标签不能移动。
命令:git checkout tagname
到这里一些基本的操作就大体上结束了,下面将结合远程仓库(GitHub)进行讲解团队协作。
二、远程仓库
为了可以使用Git项目上的团队协作,我们需要知道如何管理自己的远程仓库。远程仓库的内容就是我项目的版本库,一般来言我们可以又很多远程仓库。与他人协作完成共同任务需要我们掌握管理远程仓库以及根据需求推送或拉取数据。下面就为远程仓库开个头~
首先我们需要打开GitHub的网址进行注册账号以及创建一个新的仓库。
1.创建远程仓库
2.为远程仓库配置简单的名字
-
命令:git remote add name url
-
作用:添加一个新的远程Git仓库,同时指定一个我们自己容易记得简写。
-
命令:git remote -v
-
作用:显示远程仓库使用的Git别名和与之对应的url。
-
命令:git remote rename pb paul
-
作用:重命名。
-
命令:git remote rm name
-
作用:移除远程仓库。
3.将本地项目推送到远程仓库
- 命令:git push remote-name branch-name
- 作用:将提交对象推送到远程仓库里面。(push的时候会生成远程跟踪分支,后边会深入的解释这个分支)
4.克隆远程仓库
- 命令:git clone url
- 作用:克隆远程仓库。
5.邀请成员加入该项目
在我们注册GitHub的时候有填写的邮箱,被邀请者会收到一封邮件打开邮件根据操作即可成为该项目的成员。
6.项目负责人来更新成员所提交的内容
- 命令:git fetch [remote-name]
- 作用:获取最新数据。
这个命令会访问远程仓库,从中获取本地仓库还没有的数据。需要注意,这个命令并不会将数据自动合并或者修改到当前工作,我们需要进行收到合并才可以。
三、远程跟踪分支
远程跟踪分支是远程分支状态的引用。他们是你不能移动的本地分支,当你做任何网络通信操作时候,它们会自动移动。
当克隆一个仓库时,会自动生成一个master本地分支并且已经跟踪了对应的远程跟踪分支。
当我们新创建一个分支的时候,可以指定该分支跟踪哪一个远程跟踪分支,通过下面的命令:1.git checkout -b 本地分支名 远程分支名 2.git checkout --track 远程跟踪分支名。
上图我们发现使用git push 的命令很长,需要加上远程分支和本地分支名这样太麻烦了,我们需要进行优化一下。如果可以将本地分支和这个远程分支进行绑定起来那么我们就可以直接使用git push命令了。
通过git branch -u 远程跟踪分支名 即可将当前所在本地分支与远程分支进行跟踪起来,之后就可以通过git push来进行操作啦!!
四、解决冲突
我们再本地仓库写代码会用冲突,那我们将我代码存放再远程仓库和同事一起合作来完成项目,这样也会有冲突我们使用git push(推送代码到远程仓库)、git pull(从远程仓库获取代码) 这都会产出冲突,那么下面就来看看是怎么产生冲突以及如果进行解决冲突。
- git push 造成的冲突
如果两个人再某一个文件动了同一个地方,然后再进行git push 那么这样肯定会产生冲突的。通过下面的图可以更好的理解。
- git pull 造成的冲突
如果远程库的一个文件的第6行有内容,并且你本地代码也刚好写到第六行,然后去执行git pull 那么此时就是出现冲突,但是我们一般不会去pull 因为本地都没没提交呢但是这个也是存在的一种可能性。(是不是感觉这个和上面的很熟悉哈哈,其实是一样的哈哈)
五、 结尾
至此呢Git就完结撒花,仅此记录一下学习过程,如果有错误还请指出来,感谢观众老爷的赏脸。
若想获得上述内容的PDF版本移步到GitHub下载。
地址: Git 学习笔记专区