Git使用【下】

在这里插入图片描述

欢迎来到Cefler的博客
博客主页:那个传说中的man的主页
个人专栏:题目解析
推荐文章:题目大解析(3)


目录

  • 标签管理
    • 理解标签
    • 标签运用
  • 多人协作一
    • 准备工作
    • 协作开发
    • 将内容合并进master
  • 多人协作二
    • 协作开发(1)
    • 将内容合并进master
  • 远程分⽀删除后,本地 git branch -a 依然能看到的解决办法
  • 企业级开发模型

标签管理

理解标签

标签 tag ,可以简单的理解为是对某次 commit 的⼀个标识,相当于起了⼀个别名。例如,在项⽬发布某个版本的时候,针对最后⼀次 commit 起⼀个 v1.0 这样的标签来标识⾥程碑的意义。
这有什么⽤呢?相较于难以记住的 commit idtag 很好的解决这个问题,因为 tag ⼀定要给⼀个让⼈容易记住,且有意义的名字。当我们需要回退到某个重要版本时,直接使⽤标签就能很快定位到。
Git使用【下】_第1张图片

标签运用

在 Git 中,可以使用以下命令来创建、查看和管理标签:

  1. 创建标签:

    • 轻量标签(Lightweight Tag):只是一个特定提交的引用,没有额外的信息。
      git tag <tag-name>
      //如果tag后没有指出commit id,则默认给最新的commit id打上标签
      
    • 附注标签(Annotated Tag):包含额外的信息,如作者、日期、说明等。
      git tag -a  -m "Tag message"
      
  2. 查看标签:

    • 查看所有标签:
      git tag
      
    • 查看指定标签的详细信息:
      git show 
      
  3. 切换到标签:

    • 可以切换到某个标签对应的提交状态,但是不能在标签上进行修改。
      git checkout 
      
  4. 删除标签:

    • 删除本地标签:
      git tag -d 
      
    • 删除远程标签:
      git push origin --delete 
      
  5. 共享标签:

    • 将本地标签共享到远程仓库:
      git push origin 
      
    • 所有本地标签一次性共享到远程仓库
      git push origin --tags
      

需要注意的是,标签默认只会推送到远程仓库的本地副本。如果想将标签共享给其他人,需要使用推送命令将标签推送到远程仓库。

另外,还可以使用 -l 选项来过滤标签,使用 --contains 来查找包含某个提交的标签,以及使用 --list 来列出符合指定模式的标签等。

综上所述,以上是一些常用的标签管理命令。在实际使用中,可以根据项目需要和个人习惯来灵活运用这些命令。

多人协作一

Git使用【下】_第2张图片
此次多人协作目标
Git使用【下】_第3张图片
这里如果我们单独完成这一项任务,开发者1的开发环境在我们买的云服务器上,
开发者2的开发环境在本地windows上。

准备工作

✢:先在远程仓库中创建分支(这个操作可以在gitee上完成,也可以在本地完成)
我们直接用前者方法完成
Git使用【下】_第4张图片
此时远程仓库和本地仓库的情况如下:
Git使用【下】_第5张图片

git branch -r //可以在本地查看远程仓库分支

Git使用【下】_第6张图片
此时我们想让本地仓库同步远程仓库中的dev分支。
我们可以用git pull 拉取远程仓库
Git使用【下】_第7张图片
开发者1的准备工作已经好了。

此时我们要在window下为开发者2进行部署准备工作。

Git使用【下】_第8张图片
Git使用【下】_第9张图片
Git使用【下】_第10张图片
此时当前文件夹就会clone远程仓库了
Git使用【下】_第11张图片

远程仓库和本地仓库的情况如下:
Git使用【下】_第12张图片

协作开发

Git使用【下】_第13张图片
这里我们要在本地开发,肯定不能在master分支上进行开发,所以要再创建一个分支dev。
这里我们做了一个操作:将分支dev和origin/dev连接起来了。
用命令可查看分支连接关系

git branch -vv 

☃️这里我们补充一下本地仓库与远程仓库连接的知识点。

将本地仓库与远程仓库连接起来有以下好处:

  1. 备份和恢复:通过将本地仓库推送到远程仓库,可以实现代码的备份。如果本地仓库发生损坏或意外删除,可以从远程仓库中恢复代码。

  2. 协作开发:多人协作开发时,通过连接远程仓库,可以方便地共享代码,并进行版本控制和合并工作。团队成员可以通过拉取(pull)远程仓库的代码,进行修改和提交,并通过推送(push)更新到远程仓库。

  3. 跨多个工作环境访问代码:通过连接远程仓库,可以在不同的工作环境(如多台计算机或团队成员之间)之间访问相同的代码库,方便查看和修改代码。

要建立本地仓库和远程仓库的连接,需要进行以下步骤:

  1. 创建远程仓库:在远程代码托管平台(如GitHub、GitLab等)上创建一个仓库,并获取远程仓库的 URL。

  2. 将本地仓库与远程仓库关联:

    • 如果在本地仓库中没有关联远程仓库,可以使用命令 git remote add origin 将本地仓库与远程仓库关联起来。其中,origin 是远程仓库的别名,可以自定义。
    • 如果已经关联了其他远程仓库,可以使用命令 git remote set-url origin 来修改远程仓库的 URL。
  3. 推送和拉取代码:

    • 推送代码:使用 git push origin 命令将本地分支的代码推送到远程仓库。例如,git push origin master 将本地 master 分支的代码推送到远程仓库中。
    • 拉取代码:使用 git pull origin 命令从远程仓库拉取最新的代码到本地仓库和工作目录中。例如,git pull origin master 从远程仓库的 master 分支拉取最新代码。

⭐️连接建立后,可以使用简短的命令进行操作,如 git pushgit pull,它们会默认将代码推送到和拉取自动与当前分支关联的远程仓库和分支上。


现在我们在dev分支下进行在file.txt中添加"aaa"内容,并add,commit
Git使用【下】_第14张图片
此时因为我们已经建立连接,所以可以直接进行简短的命令git push
在这里插入图片描述
同理开发者2进行同样操作。
Git使用【下】_第15张图片
创建一个分支dev。

Git使用【下】_第16张图片
此时再add、commit、push该内容
Git使用【下】_第17张图片
但是在push这里出错了,原因是出现了合并冲突

所以解决办法:先用git pull将远程仓库的内容拉取下来,然后在本地分支上进行手动修改代码再push提交
Git使用【下】_第18张图片

git branch --set-upstream-to=origin/<branch> dev

Git使用【下】_第19张图片

Git使用【下】_第20张图片
Git使用【下】_第21张图片
最后我们再进行push就大功告成了。
Git使用【下】_第22张图片
Git使用【下】_第23张图片

将内容合并进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使用【下】_第24张图片
此时,我们的多人协作就此完成!

总结一下
在同⼀分⽀下进⾏多⼈协作的⼯作模式通常是这样
• 首先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;
• 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;
• 如果合并有冲突,则解决冲突,并在本地提交;
• 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!
• 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。

多人协作二

此次多人协作目标
Git使用【下】_第25张图片

协作开发(1)

开发者1
Git使用【下】_第26张图片
开发者2

Git使用【下】_第27张图片
在这里插入图片描述
Git使用【下】_第28张图片


这里我们发现不论是开发者1还是开发者2push后,居然都没有出现合并冲突。

原因是因为两个开发者此时都处于各自私有的分支上开发,彼此分支互不影响,所以是不会有合并冲突的


此时出现了一个小意外,开发者2生病了,需要开发者1到feature-2分支上进行帮忙开发,此时情况来到了我们刚刚多人开发一中的情况
Git使用【下】_第29张图片
原因是git pull分两种情况:

  • 拉取分支内容:需要连接
  • 拉取仓库内容:不需要连接
    我们刚刚拉取的feature-2分支信息属于仓库内容。所以不需要连接

Git使用【下】_第30张图片
此时开发者2痊愈了,回到岗位上,更新仓库后即可看到开发者1给他写的代码。
Git使用【下】_第31张图片


将内容合并进master

Git使用【下】_第32张图片
Git使用【下】_第33张图片
Git使用【下】_第34张图片
Git使用【下】_第35张图片
此时再合并feature-1
但需注意:
Git使用【下】_第36张图片
所以得先在feature-1合并master
Git使用【下】_第37张图片
Git使用【下】_第38张图片
此时我们在在gitee中创建一个pull request库接收合并就可以了。
Git使用【下】_第39张图片
Git使用【下】_第40张图片
Git使用【下】_第41张图片
Git使用【下】_第42张图片
至此已大功告成!

远程分⽀删除后,本地 git branch -a 依然能看到的解决办法

Git使用【下】_第43张图片
Git使用【下】_第44张图片

git remote prune

Git使用【下】_第45张图片

企业级开发模型


如上便是本期的所有内容了,如果喜欢并觉得有帮助的话,希望可以博个点赞+收藏+关注❤️ ,学海无涯苦作舟,愿与君一起共勉成长

Git使用【下】_第46张图片
在这里插入图片描述

你可能感兴趣的:(git,企业级开发git,linux,多人开发)