git的使用


title: Git

一、引言


  • 在单人开发过程中,需要进行版本管理,以利于开发进度的控制。

  • 在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。

二、介绍


  • Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
  • Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
  • 官网:https://git-scm.com/

三、Git安装


3.1 下载Git

下载Git https://git-scm.com/downloads

下载git
install1

3.2 安装

安装,除了安装位置外,其他一直下一步即可

3.3 基本配置

  • 安装后,打开cmd ,自报家门

  • 如下信息会在提交代码时要使用,记录在你的每次提交中。以后才知道哪次提交是谁做的。

git config --global user.name "Your Name"  #用户名
git config --global user.email "email@example.com"  #邮箱
# 查看信息
git config -l 
# 查看config文件
在 ~/.config

3.4 测试

测试:cmd中执行 ,查看git版本

git version  

四、架构


  • 版本库:工作区中有一个隐藏目录 .git,这个目录不属于工作区,而是git的 版本库,是git管理的所有内容

  • 暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。

  • 分支:版本库中包含若干分支,提交的文件存储在分支中

架构图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZfYyDU1h-1668513990251)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%9A%82%E5%AD%98%E5%8C%BA.jpg)]

五、仓库


对应的就是一个目录,这个目录中的所有文件被git管理起来。

以后会将一个项目的根目录,作为仓库。

仓库中的每个文件的改动 都由git跟踪。

5.1 新建仓库

选择一个目录,执行指令:git init

新建仓库仓库目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIFkCQ7l-1668513990252)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E4%BB%93%E5%BA%93.jpg)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UBCJVpzR-1668513990252)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E4%BB%93%E5%BA%932.jpg)]

5.2 工作区

执行git init的目录即为工作区,如上例,D:\repo1目录即为工作区【不包含.git目录】

所有文件,都首先在工作区新建,然后可以存入仓库(版本库),进行版本控制。

5.3 暂存区

暂存区也在 .git 目录内,工作区的文件进入仓库时,要先进入暂存区。

5.4 分支

版本控制,简单说,就是记录文件的诸多版本,分支就是这些版本的最终记录位置。

六、基本操作


6.1 查看仓库状态

执行 git status 可以看到工作区中文件的状态

未记录过的文件,是未跟踪状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zl5VGj5q-1668513990252)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%9F%A5%E7%9C%8B%E7%8A%B6%E6%80%811.jpg)]

6.2 暂存文件

执行 git add . 将工作区中的文件全部存入暂存区

将工作区中的文件存入暂存区
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8442TSN-1668513990252)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%9A%82%E5%AD%98%E6%96%87%E4%BB%B6.jpg)]

6.3 提交文件

执行 git commit -m “这里写提交的描述信息” 作用是将暂存区的文件存入分支,形成一个版本

提交文件,形成一个版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SiRBCJmQ-1668513990253)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%8F%90%E4%BA%A4%E6%96%87%E4%BB%B6.jpg)]

扩展:Git是如何保存我提交的这些内容的呢?

Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。Git 的工作方式就像下图所示。

img

这么作的优点就是,Git的几乎所有操作都是本地操作,你可以即使不联网,你依然可以查看历史,比较变更,提交修改,等到有网络时一次性传上去,而这点对其它VCS是不可能的。

而本地操作的另一个优点就是快!尤其在网络条件差的时候,这个优点更明显。

七、远程仓库


第5章中的仓库,其实是本地仓库。

当多人协同开发时,每人都在自己的本地仓库维护版本。

但很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库

7.1 远程仓库工作模式

远程仓库工作模式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ECTMxY77-1668513990253)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93.jpg)]

7.2 远程仓库选型

7.3 基本操作

每个开发人员,在面对远程仓库时,会面临的一些基本操作。

7.3.1 注册git服务器账号

码云 注册账号,并登录。

进入公司后,很可能会使用公司自己搭建的git服务器,则账号向领导索要即可

点击注册,完成注册过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PZje65uE-1668513990254)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E7%A0%81%E4%BA%91%E6%B3%A8%E5%86%8C.jpg)]
登录后显示主页
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oUn1GHTf-1668513990254)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E7%A0%81%E4%BA%91%E7%99%BB%E5%BD%95.jpg)]
7.3.2 新建远程仓库
创建远程私有仓库-01
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-931nefxA-1668513990254)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%88%9B%E5%BB%BA%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%931.jpg)]
创建远程私有仓库-02
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yOOBBCWx-1668513990254)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%88%9B%E5%BB%BA%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%932.jpg)]
创建远程私有仓库-03
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTPuvP2u-1668513990255)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%88%9B%E5%BB%BA%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%933.jpg)]
7.3.3 本地关联远程仓库

本文档中选用仓库的 https协议的地址,将此地址关联到本地git中

如此后,本地即可用“origin” 代指远程仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AaZ4k27H-1668513990255)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%85%B3%E8%81%94%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93.jpg)]
7.3.4 推送文件到远程仓库

将本地仓库中已经commit的内容push到远程仓库,以共享自己的代码。

push
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QaK9eCkt-1668513990255)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/push%E5%88%B0%E8%BF%9C%E7%A8%8B.jpg)]
输入凭证,如此码云才能接受此次上传的内容
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBRb1lmu-1668513990256)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/push%E5%88%B0%E8%BF%9C%E7%A8%8B_%E8%BE%93%E5%85%A5%E5%87%AD%E8%AF%81.jpg)]
7.3.5 克隆远程仓库

如果仓库已经由别人创建完毕,我们需要其中的内容,则可以通过 git clone 将其复制到本地。

新建目录“repo2”,然后在其中执行 git clone
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WnyTgk7p-1668513990256)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/clone%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%93.jpg)]
远程仓库,复制到本地,并自动初始化为一个本地仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-F21zfGfA-1668513990256)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/clone%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%932.jpg)]
7.3.6 代码共享

多人协同开发时,写好代码的git push 上传到远程仓库;需要代码的 git pull 拉取代码即可。

有人再次将本地仓库内容,上传到了远程仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RxBZEdcM-1668513990256)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/pull%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%931.jpg)]
重点:此时另一方如果想获得更新,则需要做一次拉取 git pull
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ePk5Jwnx-1668513990256)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/pull%E8%BF%9C%E7%A8%8B%E4%BB%93%E5%BA%932.jpg)]
7.3.7 命令汇总
命令描述
git remote add 标识名(master) 远程地址本地关联远程仓库
git push 标识名 master将本地仓库内容上传到远程仓库
git pull 标识名 master从远程仓库下载内容到本地仓库
git clone 远程地址将远程仓库复制到本地,并自动形成一个本地仓库

八、分支


8.1 分支简介

  • 分支,是一个个版本最终存储的位置。

  • 分支,就是一条时间线,每次git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上。

分支由多个提交点组成,分支上会有一个指针,默认总是指向最新的提交点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5sD9kSvR-1668513990257)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%88%86%E6%94%AF%E5%9B%BE%E4%BE%8B1.jpg)]

8.2 分支操作

8.2.1 查看分支
  • 查看当前仓库的分支 git branch

  • 仓库中默认只有 master 分支

  • 执行git commit时,默认是在master分支上保存版本。

默认只有master分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9iStQqBF-1668513990257)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%9F%A5%E7%9C%8B%E5%88%86%E6%94%AF-master.jpg)]
8.2.2 创建分支
  • 在商业项目开发过程中,我们不会轻易的在master分支上做操作。

  • 我们会新建一个开发用的分支,在此分支上做版本的记录。

    当代码确实没有问题时,才会将开发分支上成熟的代码版本添加到master分支上。

  • 保证开发过程中,可以及时记录版本,又保证master分支上每个提交点都是稳健版本。

创建分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mQjHN43g-1668513990257)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF.jpg)]
8.2.3 切换分支
  • 默认情况下,当前使用的分支是 master分支

  • 可以切换到 dev分支,则后续的git commit 便会在dev分支上新建版本(提交点)

切换分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FUfijXYX-1668513990257)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%88%87%E6%8D%A2%E5%88%86%E6%94%AF.jpg)]
再次查看分支情况
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j8CMHF4V-1668513990257)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%9F%A5%E7%9C%8B%E5%88%86%E6%94%AF.jpg)]

8.3 新建分支细节

新建分支时,新分支,默认有哪些内容?分支中包含了哪些次提交?

8.3.1 新分支初始内容

每个分支都有一个指针,新建一个分支,首先是新建一个指针

而且新分支的指针会和当前分支指向同一个提交点

新分支包含的提交点就是从第一个提交点到分支指针指向的提交点。

每个分支都有一个指针,新建一个分支,首先是新建一个指针
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqTpc9z2-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF%E7%BB%86%E8%8A%821.jpg)]
8.3.2 多分支走向

在master分支和新分支,分别进行 git addgit commit

分支情况如下图:

master分支未动,在dev分支增加一次commit
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DYykgCtF-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF%E7%BB%86%E8%8A%822.jpg)]
master分支增加一个commit,dev分支再增加一个commit
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9cXZMOF4-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF%E7%BB%86%E8%8A%823.jpg)]
8.3.3 分支提交日志

查看分支的提交日志,进而看到分支中提交点的详细情况。

提交情况如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sEjEu6bM-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%8F%90%E4%BA%A4%E6%97%A5%E5%BF%97.jpg)]
查看当前分支的提交日志
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HRiegFe5-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%8F%90%E4%BA%A4%E6%97%A5%E5%BF%972.jpg)]

8.4 分支合并

两个分支内容的合并

git merge 分支a 合并分支a

合并的方式有两种:快速合并 和 三方合并。

8.4.1 快速合并

如果分支A当前的修改,是完全基于分支B的修改而来,则B分支合并A分支,就是移动指针即可。

合并前分支状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVyVOBJL-1668513990258)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF%E7%BB%86%E8%8A%822.jpg)]
快速合并效果(master 合并 dev)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yVkVPyMo-1668513990259)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%BF%AB%E9%80%9F%E5%88%86%E6%94%AF%E5%90%88%E5%B9%B6.jpg)]
8.4.2 三方合并

在不具备快速合并的条件下,会采用三方合并。

合并前,分支状态
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R27acu0T-1668513990259)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF%E7%BB%86%E8%8A%823.jpg)]
三方合并,将23的更改都累加在1上,形成新的提交点
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TG6uG7l1-1668513990259)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E4%B8%89%E6%96%B9%E5%90%88%E5%B9%B6.jpg)]
8.4.3 合并冲突

两个分支进行合并,但它们含有对同一个文件的修改,则在合并时出现冲突,git无法决断该保留改文件哪个分支的修改。

8.4.3.1 冲突演示

场景模拟如下:

master分支修改hig.txt文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TOR5Vlxy-1668513990259)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%811.jpg)]
dev分支修改hig.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vQwcGmLS-1668513990259)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%812.jpg)]

在master分支 合并 dev分支

合并dev分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3b0lo9Bq-1668513990260)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%813.jpg)]

此时,打开hig.txt 文件:

冲突后,git会将两个分支的内容都展示在文件中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rBBrZG8w-1668513990260)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%814.jpg)]
8.4.3.2 冲突解决

出现冲突后,如要由两个开发人员当面协商,该如何取舍,为冲突文件定义最终内容。

解决方案:

  1. 保留某一方的,删除另一方的
  2. 保留双方的
  3. 但无论如何,要记得删除 <<<< ==== >>>> 这些
  4. 本质是两人协商为冲突的内容,定制出合理的内容。
根据协商,再次编辑文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JDcSN0xZ-1668513990260)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%816.jpg)]
提交 再次编辑后的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zBuHjN7C-1668513990260)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%86%B2%E7%AA%816.jpg)]

九、Idea关联Git


9.1 关联Git

File > Settings 关联过程是自动的

此处关联是Idea可以自动完成的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6YGp8YQy-1668513990260)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%85%B3%E8%81%94git.jpg)]

9.2 创建仓库

  • 新建项目后,将项目目录创建为git仓库

  • 注意: 要在建仓库前,设置忽略文件 “.gitignore”

    作用:被忽略的文件会被版本记录忽略,版本中不包含它们。

    范围:不需要和其他开发共享的文件,具体见下图。

创建仓库前,先添加忽略文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lvR4tIpc-1668513990261)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%88%9B%E5%BB%BA%E4%BB%93%E5%BA%930.jpg)]
将项目目录初始化为一个仓库
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vKt16IkE-1668513990261)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%88%9B%E5%BB%BA%E4%BB%93%E5%BA%931.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrgoD7qR-1668513990261)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%88%9B%E5%BB%BA%E4%BB%93%E5%BA%932.jpg)]

9.3 提交-commit

创建好仓库后,做第一次提交。

选择提交菜单
idea-commit
选择提交文件,定义提交信息
idea-commit2
之后会有些友好提示,可以忽略,点击“commit”即可
idea-commit3

9.4 创建分支

新建开发分支

点击右下角链接,即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T8KZiztl-1668513990262)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF.jpg)]
新建分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gJvJMNGb-1668513990262)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF2.jpg)]
查看当前分支
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QMGvS7O2-1668513990262)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E6%96%B0%E5%BB%BA%E5%88%86%E6%94%AF3.jpg)]

9.5 上传到远程仓库(push)

  • 请首先参照第7章,创建一个远程仓库。

  • 要求是裸库,且建议库名和项目名同名。

选择push菜单
idea-push
定义远程仓库地址
idea-push3
执行,push操作
idea-push4
push成功后 ,弹窗提示
idea-push5

9.6 复制到本地仓库(clone)

如果有建好的远程仓库,比如公司内已经在用的仓库,或者github,码云上的一些公开仓库,

可以将远程仓库的项目复制到本地使用。

点击克隆菜单
idea-clone
输入如远程仓库地址
idea-clone2
打开项目
idea-clone3
打开项目,选项
idea-clone4

9.7 更新本地项目

如果远程仓库有更新,则你的本地项目也需要一起更新。

选择pull菜单
idea-pull1
执行 pull操作
idea-pull2
更新日志显示
idea-pull3

9.8 冲突解决

合并分支时,如果出现冲突,则需要解决冲突。

冲突出现,弹窗中可以选择如下
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SA9Tnm3F-1668513990265)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%86%B2%E7%AA%81.jpg)]
也可以直接修改冲突文件,然后commit即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KqXJ5J2-1668513990265)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/idea-%E5%86%B2%E7%AA%812.jpg)]

十、多人协同开发


多人开发协同,git操作

10.1 项目管理员( 项目经理 )

1> 由管理员负责创建一个远程库,初始的库中什么也没有,为裸库。库的名称建议和项目同名

2> 管理员会在idea中创建一个初始项目,其中包含.gitignore文件。 并在项目根目录下 建立本地库。并建立 dev分支。

3> 管理员将本地库上传到远程库

4> 将其他开发人员拉入远程库的 开发成员列表中 ,使得其他开发人员可以访问该远程库。

流程如下:

点击添加成员
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K9qbCwJ4-1668513990265)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%B7%BB%E5%8A%A0%E5%BC%80%E5%8F%91%E6%88%90%E5%91%98.jpg)]
选择直接添加
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4xi5XU8t-1668513990265)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%B7%BB%E5%8A%A0%E5%BC%80%E5%8F%91%E6%88%90%E5%91%982.jpg)]
提交
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tp9xcFqy-1668513990265)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%B7%BB%E5%8A%A0%E5%BC%80%E5%8F%91%E6%88%90%E5%91%984.jpg)]
查看已添加的开发成员
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9jzCp5X-1668513990266)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E6%B7%BB%E5%8A%A0%E5%BC%80%E5%8F%91%E6%88%90%E5%91%984.jpg)]

5> master分支设置为 protected分支,只有管理员有权限将代码合并到其中。dev分支设置为 常规分支所有开发人员 都可以其中合并代码

进入分支设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gXiLJ3Sj-1668513990266)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E4%BF%9D%E6%8A%A4%E5%88%86%E6%94%AF1.jpg)]
设置保护分支,让master分支不能被随更改
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rSyCzdII-1668513990266)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E4%BF%9D%E6%8A%A4%E5%88%86%E6%94%AF2.jpg)]

10.2 开发人员

  • 初始化:在idea中clone 远程库,获得项目。会建立本地库

  • 后续的开发中,都要在dev分支上进行。开发完一个功能并测试通过后就commit 提交到本地的dev分支中,然后 上传(push)到远程dev分支中。

  • 需要更新项目内容时,通过 pull 从远程仓库拉取内容。

  • 注意:多人协同时,每次在 push 到远程库前,都先做一次pull,一来是把远程最新内容合并到本地,二来是核实本地内容是否和远程内容有冲突。

  • 后续的开发,会接到一个个的功能任务,往复操作 2>、3>、4> 而已。

十一、经典问题


在使用https协议做push时,如果曾经使用过码云,但密码有过改动,此时会报错

使用https协议报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8mVp1Xc3-1668513990266)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%9D%911.jpg)]

解决方案: 控制面板 》 凭据管理器 》 删除对应凭证,再次使用时会提示重新输入密码。

删除之前的码云凭证,然后重新push即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qjdulNDC-1668513990266)(https://qfedu-1254123199.cos.ap-nanjing.myqcloud.com/img/%E5%9D%912.jpg)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值