【Git多人协作开发】知识点总结

avatar
作者
猴君
阅读量:0

目录

知识点总结

1.创建dev分支开发

1.1在本地创建

1.1在远程创建(推荐)

2.远程分支和本地分支建立连接☞pull和push操作

2.1情况1

2.2情况2

2.3情况3

3.本地仓库对远程仓库的拉取pull操作

3.1情况1

3.2情况2

4.将开发分支的内容合并到远程master分支上

5.查看分支情况

6.解决git branch -a打印已被删除的远程分支的方法


知识点总结

  • 本地是本地的分支,远程是远程的分支(拉取后也是)需要建立联系。
  • 不能在本地切换到远程分支进行操作的,只能创建本地分支,建立联系(或者不需要)。切换到本地分支进行操作再push推送至远程分支。
  • 如果是多人协作开发很可能导致就是master主分支的内容不是最新的所以,在本地基于master创建的时候,请必须pull拉取一下最新的master分支。包括如果你要拉取别人的分支帮忙修改,必须是拉取最新的版本。

同一分支下的多人协作开发模式

  • 首先,可以试图⽤ git push origin branch-name 推送⾃⼰的修改;

  • 如果推送失败,则因为远程分⽀⽐你的本地更新,需要先⽤ git pull 试图合并;

  • 如果合并有冲突,则解决冲突,并在本地提交;

  • 没有冲突或者解决掉冲突后,再⽤git push origin branch-name推送就能成功!

  • 功能开发完毕,将分⽀ merge 进 master,最后删除分⽀。


不同的分支下的多人协作开发模式

  • 每个开发者都私有一个分支去开发各自的功能。(同一文件/不同文件)
  • 开发完成之后(三板斧)push,基本不会出现冲突。
  • 会出现小插曲(同事生病等)。
  • 完成之后需要将开发分支部分合并到master。三个方案☞建议选择:远程和本地混合。

1.创建dev分支开发

1.1在本地创建

  • 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
  • 在本地创建的feature的时候必须确保基于本地master分支创建的feature-1分支中的master分支相较于远程分支master分支是最新一次提交记录的版本。
  • 先在远程仓库pull拉取master最新版本☞再创建本地分支☞推送push☞远程仓库
  • 本地创建分支,基于本地master创建,不能保证本地master分支是最新的代码不一定是最新的版本,所以需要提前pull拉取远程仓库的最新master分支。

  • git checkout master(先切换至master分支)
  • git pull 
  • git checkout -b feature-1:本地创建本地feature-1分支
  • git push origin feature-1:推本地分支feature-1到远程仓库

1.1在远程创建(推荐)

  • 无论是本地创建还是远程创建,都需要基于master的最新一次提交的版本。
  • 创建的dev分支就是基于master最新一次提交版本来创建的。
  • 在远程仓库创建完成之后再☞拉取pull☞本地仓库
  • 推荐:因为远程仓库创建分支(基于master创建)master就是最新最全最稳定的代码. 

2.远程分支和本地分支建立连接☞pull和push操作

  • 无论是pull操作或者push操作,都是针对分支的操作。、
  • 必须让两个相互 拉/推 操作的分支建立连接。有了连接才能够push/pull
  • master分支<---------------->master分支
  • 使用git push/pull origin master指定了远程仓库的目标分支时(不需要建立连接)
  • 使用git push/pull 没有指定/简写的时候,则我们需要建立连接(git才知道是从哪个本地仓库的分支,到哪个远程仓库的分支)连接在命令简写的时候才需要建立
  • 在本地克隆远程仓库的时候,形成本地仓库的时候。master和master分支就会自动建立连接。建立连接是为了pull/push写短命令。

2.1情况1

情景:远程仓库有dev分支,本地仓库没有dev分支

命令:git checkout -b dev origin/dev

在本地创建dev分支的同时切换到dev分支上,并且和远程仓库的dev分支建立连接

2.2情况2

情景:远程仓库有dev分支,本地仓库有dev分支

命令:git branch --set-upsteam-to=origin/dev(远程) dev(本地)

直接建立连接

2.3情况3

情景:远程仓库没有dev分支,本地有dev分支

命令:git push origin dev

在创建远程仓库的分支同时,与本地仓库建立连接

3.本地仓库对远程仓库的拉取pull操作

3.1情况1

 拉取分支里面的内容(某个文件必须分支和分支建立连接才可)

3.2情况2

 拉取仓库的内容(包括拉取分支本身和分支下的内容)是不需要建立连接的

4.将开发分支的内容合并到远程master分支上

【1】 全在远程操作(无冲突)开发分支feature直接和主分支master最新一次提交版本merge合并。(没有合并冲突)

【2】开发分支feature直接和主分支master最新一次提交版本merge合并存存冲突。

【2.1】本地和远程结合(存在冲突)

  1. 本地服务器操作:在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交并且推送push。
  2. 远程服务器操作:在远程仓库master主分支 merge合并feature-1分支  

【2.2】全在本地操作(存在冲突)

  1. 在本地仓库切换至feature-1 mereg合并 本地master分支,存在冲突,手动解决冲突,三板斧提交
  2. 切换至本地master分支合并
  3. 最后push推送至远程仓库

具体操作前面博文详细演示过了☞☞

5.查看分支情况

  • 明确本地分支/远程分支

  • 查看本地分支:git branch

  • 查看远程分支:git branch -r

  • 既查看本地分支又查看远程分支:git branch -a

  • 查看本地分支和远程分支建立连接:git branch -vv

6.解决git branch -a打印已被删除的远程分支的方法

  • 前面我们知道,当我们在远程仓库删除无用分支之后,使用git branch -a仍然能够看到删除的无用分支。
  • git remove show origin:帮助我们展示远程仓库分支的一些情况

  • git remove prune :帮助我们移除本地陈旧的分支(远程仓库已经删除的分支)

  • git branch -d:删除的分支名称

 

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!