多人协作(5)
一、标签管理
标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。
- 创建标签
创建标签的指令(给最新的提交打上标签):
git tag v1.0
给指定的commit id打标签:
git tag v0.9 commit id号
给指定的commit id进行描述:
git tag -a v0.8 -m "描述的信息" 2331213(指定的commit id)//没有写指定的commit id就把最新的提交打上标签
- 查看标签
查看所有存在的标签:
git tag
查看标签的描述:
git show v0.8
- 删除标签
删除标签指令:
git tag -d v0.8
- 推送标签到远程仓库
推送指定的标签:
git push origin v0.8
推送所有的标签
git push origin --tags
删除远程仓库的标签:
git push origin :v0.8//记得先把本地的标签删掉(git tag -d v0.8),在删远程的标签
二、多人协作
2.1 场景一(这种方式不常见)
目标:远程master分支下file.txt文件新增代码“aaa”,“bbb”
实现:由开发者1新增“aaa”,由开发者2新增“bbb”
条件:在一个分支下协作完成
- 先要创建一个分支(远程,本地都可以)
- 远程分支与本地分支进行连接
查看远程分支:
git branch -r
查看本地分支:
git branch
查看远程和本地分支:
git branch -a
本地分支与远程分支进行连接:
git checkout -b dev origin/dev
查看远程和本地分支是否建立连接:
git branch -vv
- 多人协作,把远程仓库克隆到windows系统里。
在windows窗口里输入:
git clone https://gitee.com/big-ll/remote-gitcode.git
已经克隆成功了
- 开发者1新增代码“aaa”,添加到远程仓库
- 开发者2新增代码添加到远程仓库
打开了终端:
创建分支并切换(不与远程仓库连接):
分支与远程仓库连接:
我们把修改的代码进行提交,发现报错(原因是与远程仓库起冲突):
解决冲突,并提交:
1.先把远程仓库的内容拉取下来,解决冲突:
2.提交代码:
- 将内容合并进master分支
1.远程仓库进行合并分支
内容填写完毕就可以提交了
2.本地仓库进行合并分支
远程仓库已经合并完成;
总结⼀ 下,在同⼀分⽀下进⾏多⼈协作的⼯作模式通常是这样:
• ⾸先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
• 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
• 如果合并有冲突,则解决冲突,并在本地提交;
• 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
• 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。
记得把dev分支删除掉。
2.2 场景二(常见)
目标:远程master分支下新增function1和function2文件
实现:由开发者1新增function1,由开发者2新增function2
条件:在不同分支下协作完(各自让某一个功能私有某一个分支)
- 开发者1创建一个分支,写好功能,然后提交分支,把分支推送给远程仓库(与远程仓库连接)
git branch git checkout -b function1 vim func1 git add . git commit -m "add func1" git push origin function1
- 开发者2创建一个分支,写好功能,然后提交分支,把分支推送给远程仓库(与远程仓库连接)
代码:
与开发者1一样
开发者2与开发者1的方式一样:
经过上面的操作,两位开发者都可以在自己的分支上去写代码。
- 如果⼩伙伴突然⽣病了,但需求还没开发完,需要你帮他继续开发,于是他便把 function2分⽀名告诉你了。 这时你就需要在⾃⼰的机器上切换到function2分⽀帮忙继续开发。
git pull
1.拉取分支内的内容
2.拉取仓库的内容(git push origin function2)每一次都要这个操作
要做的操作如下:
# 必须先拉取远端仓库内容 git pull # 创建本地分支并切换,与远程仓库连接 git checkout -b function2 origin/function2 //对文件进行开发,然后提交 vim func2 git add func2 git commit -m "modify func2" #把我们开发的内容推送到远程仓库 git push origin function2
如果同事没病了,需要继续开发程序:
先要从远端仓库拉取数据(前提是要与远端仓库建立连接)
git pull git branch --set-upstream-to=origin/function2 function2 git pull
继续开发,开发完毕后,提交修改信息,并推送数据
- 多人开发,将内容合并到master分支上
1.在远程仓库里将function2合并到master分支
2.在本地仓库里将master分支拉取下来,然后合并master分支
需要先切换到master分支上,然后拉取远程仓库里的内容
git branch --set-upstream-to=origin/function1 function1
切换到function1分支,然后合并master分支,并提交,推送function1分支
3.在远程仓库里将function1与master分支合并
各个开发人员的文件都在master分支里了
3.画图