欢迎来到Cefler的博客😁
🕌博客主页:那个传说中的man的主页
🏠个人专栏:题目解析
🌎推荐文章:题目大解析(3)
目录
- 👉🏻标签管理
- 理解标签
- 标签运用
- 👉🏻多人协作一
- 准备工作
- 协作开发
- 将内容合并进master
- 👉🏻多人协作二
- 协作开发(1)
- 将内容合并进master
- 👉🏻远程分⽀删除后,本地 git branch -a 依然能看到的解决办法
- 👉🏻企业级开发模型
👉🏻标签管理
理解标签
标签 tag
,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?相较于难以记住的 commit id
, tag
很好的解决这个问题,因为 tag ⼀定要给⼀个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。
标签运用
在 Git 中,可以使用以下命令来创建、查看和管理标签:
-
创建标签:
- 轻量标签(Lightweight Tag):只是一个特定提交的引用,没有额外的信息。
git tag <tag-name> //如果tag后没有指出commit id,则默认给最新的commit id打上标签
- 附注标签(Annotated Tag):包含额外的信息,如作者、日期、说明等。
git tag -a <tag-name> -m "Tag message"
- 轻量标签(Lightweight Tag):只是一个特定提交的引用,没有额外的信息。
-
查看标签:
- 查看所有标签:
git tag
- 查看指定标签的详细信息:
git show <tag-name>
- 查看所有标签:
-
切换到标签:
- 可以切换到某个标签对应的提交状态,但是不能在标签上进行修改。
git checkout <tag-name>
- 可以切换到某个标签对应的提交状态,但是不能在标签上进行修改。
-
删除标签:
- 删除本地标签:
git tag -d <tag-name>
- 删除远程标签:
git push origin --delete <tag-name>
- 删除本地标签:
-
共享标签:
- 将本地标签共享到远程仓库:
git push origin <tag-name>
- 将所有本地标签一次性共享到远程仓库:
git push origin --tags
- 将本地标签共享到远程仓库:
需要注意的是,标签默认只会推送到远程仓库的本地副本。如果想将标签共享给其他人,需要使用推送命令将标签推送到远程仓库。
另外,还可以使用 -l
选项来过滤标签,使用 --contains
来查找包含某个提交的标签,以及使用 --list
来列出符合指定模式的标签等。
综上所述,以上是一些常用的标签管理命令。在实际使用中,可以根据项目需要和个人习惯来灵活运用这些命令。
👉🏻多人协作一
✥此次多人协作目标:
这里如果我们单独完成这一项任务,开发者1的开发环境在我们买的云服务器上,
开发者2的开发环境在本地windows上。
准备工作
✢:先在远程仓库中创建分支(这个操作可以在gitee上完成,也可以在本地完成)
我们直接用前者方法完成
此时远程仓库和本地仓库的情况如下:
git branch -r //可以在本地查看远程仓库分支
此时我们想让本地仓库同步远程仓库中的dev分支。
我们可以用git pull
拉取远程仓库
开发者1的准备工作已经好了。
此时我们要在window下为开发者2进行部署准备工作。
此时当前文件夹就会clone远程仓库了
远程仓库和本地仓库的情况如下:
协作开发
这里我们要在本地开发,肯定不能在master分支上进行开发,所以要再创建一个分支dev。
这里我们做了一个操作:将分支dev和origin/dev连接起来了。
用命令可查看分支连接关系
git branch -vv
☃️这里我们补充一下本地仓库与远程仓库连接的知识点。
将本地仓库与远程仓库连接起来有以下好处:
-
备份和恢复:通过将本地仓库推送到远程仓库,可以实现代码的备份。如果本地仓库发生损坏或意外删除,可以从远程仓库中恢复代码。
-
协作开发:多人协作开发时,通过连接远程仓库,可以方便地共享代码,并进行版本控制和合并工作。团队成员可以通过拉取(pull)远程仓库的代码,进行修改和提交,并通过推送(push)更新到远程仓库。
-
跨多个工作环境访问代码:通过连接远程仓库,可以在不同的工作环境(如多台计算机或团队成员之间)之间访问相同的代码库,方便查看和修改代码。
要建立本地仓库和远程仓库的连接,需要进行以下步骤:
-
创建远程仓库:在远程代码托管平台(如GitHub、GitLab等)上创建一个仓库,并获取远程仓库的 URL。
-
将本地仓库与远程仓库关联:
- 如果在本地仓库中没有关联远程仓库,可以使用命令
git remote add origin <remote-url>
将本地仓库与远程仓库关联起来。其中,origin
是远程仓库的别名,可以自定义。 - 如果已经关联了其他远程仓库,可以使用命令
git remote set-url origin <remote-url>
来修改远程仓库的 URL。
- 如果在本地仓库中没有关联远程仓库,可以使用命令
-
推送和拉取代码:
- 推送代码:使用
git push origin <branch-name>
命令将本地分支的代码推送到远程仓库。例如,git push origin master
将本地master
分支的代码推送到远程仓库中。 - 拉取代码:使用
git pull origin <branch-name>
命令从远程仓库拉取最新的代码到本地仓库和工作目录中。例如,git pull origin master
从远程仓库的master
分支拉取最新代码。
- 推送代码:使用
⭐️连接建立后,可以使用简短的命令进行操作,如 git push
和 git pull
,它们会默认将代码推送到和拉取自动与当前分支关联的远程仓库和分支上。
现在我们在dev分支下进行在file.txt中添加"aaa"内容,并add,commit
此时因为我们已经建立连接,所以可以直接进行简短的命令git push
同理开发者2进行同样操作。
创建一个分支dev。
此时再add、commit、push该内容
但是在push这里出错了,原因是出现了合并冲突
所以解决办法:先用git pull
将远程仓库的内容拉取下来,然后在本地分支上进行手动修改代码再push提交
git branch --set-upstream-to=origin/<branch> dev
最后我们再进行push就大功告成了。
将内容合并进master
这里我们有两种方法;
1.使用pull request文件,将dev分支放入申请单中,若管理员审批通过,即可合并到master分支中(建议使用)
2.本地操作:先将dev分支merge进本地master分支,最后再将master push即可
但我们这里先使用方法2来演示
这里操作顺序如下:👇🏻
1.先git pull
同步远程仓库,有人会疑问会什么这里要先同步远程仓库?
实际上,在开发中,远程仓库的master是不断在更新的,为了保证我们的master状态是最新的,我们要同步远程仓库使其先达到最新状态
2.在dev分支上merge master,有合并冲突在dev分支上解决,不影响master(我们之前说过)
3.最后在master分支上merge dev,最后push 到远程仓库。
此时,我们的多人协作就此完成!
🌈 总结一下:
在同⼀分⽀下进⾏多⼈协作的⼯作模式通常是这样
• 首先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
• 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
• 如果合并有冲突,则解决冲突,并在本地提交;
• 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
• 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。
👉🏻多人协作二
✥此次多人协作目标:
协作开发(1)
开发者1🫡
开发者2🫡
这里我们发现不论是开发者1还是开发者2push后,居然都没有出现合并冲突。
原因是因为两个开发者此时都处于各自私有的分支上开发,彼此分支互不影响,所以是不会有合并冲突的
此时出现了一个小意外,开发者2生病了🤧🤧,需要开发者1到feature-2分支上进行帮忙开发,此时情况来到了我们刚刚多人开发一中的情况
原因是git pull
分两种情况:
- 拉取分支内容:需要连接
- 拉取仓库内容:不需要连接
我们刚刚拉取的feature-2分支信息属于仓库内容。所以不需要连接
此时开发者2痊愈了,回到岗位上,更新仓库后即可看到开发者1给他写的代码。
将内容合并进master
此时再合并feature-1
但需注意:
所以得先在feature-1合并master
此时我们在在gitee中创建一个pull request库接收合并就可以了。
至此已大功告成!
👉🏻远程分⽀删除后,本地 git branch -a 依然能看到的解决办法
git remote prune
👉🏻企业级开发模型
如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注🌹🌹🌹❤️ 🧡 💛,学海无涯苦作舟,愿与君一起共勉成长