第一节、背景
传统团队开发存在的问题
- 项目环境、资源不统一,造成后期项目整合难度较高;
- 无法实现代码版本控制,不能回退到以前的代码版本;
- 项目不能实现远程访问;
项目版本管理工具
- 一个专门用于管理团队代码的工具,可以实现项目代码版本控制、项目远程访问等功能;
- 分类
- svn:集中式的版本管理工具(没有本地仓库)
- git:分布式管理工具
- 分布式无中心
- 断网也可以使用,有本地的私有库,本地就可以进行版本管理。甚至可以管理文档等。
第二节、环境搭建
下载安装
-
下载git
https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.35.1.windows.2/
https://git-scm.com/downloads
-
安装
- 不需要额外配置,一路next;
-
测试是否安装成功
-
打开
cmd
窗口,输入以下命令,获取git版本git --version
-
配置
作用:每次提交代码的时候会将用户和邮箱信息附带上去,可以通过这2个信息方便追踪到谁提交了代码
鼠标右键,选择get bash
配置git
-
配置用户名称(自定义)
git config --global user.name "leeyp"
-
配置用户邮箱
git config --global user.email "573925xxx@qq.com"
第三节、git的工作流程
git与github
- git是开发者电脑上需要安装的版本管理工具,可以提供缓冲区、本地仓库等功能,但远程仓库需要使用github;
- github是一个在线的远程仓库,是使用最大的开源网站;
- gitee(码云):是一个国内的github,上传速度更快,还支持中文。
gitee设置为远程仓库
- 注册gitee账号并登录
https://gitee.com/signup
- 创建远程仓库(项目负责人)
- 仓库管理【可以对仓库信息进行修改】
- 邀请组员
第四节、基本流程(个人)
克隆远程仓库到本地文件夹中
-
新建文件夹并进入文件夹中,右键
get bash here
打开git命令行窗口 -
执行命令克隆远程仓库
git clone HTTPS的远程仓库链接
准备工程项目,并将项目文件存放到克隆下来的仓库文件夹中
-
上传本地仓库中的项目文件到远程仓库
-
进入远程仓库对应文件夹
cd 文件夹名称【或者重新进】
-
将项目文件添加到缓冲区
git add .
-
将缓冲区的项目文件添加到本地仓库
git commit -m "提交日志"
-
将本地仓库项目文件推送到远程仓库
git push
-
解决每次操作远程仓库都需要重复输入账号密码的问题
git conifg --global credential.helper store
第五节、个人开发流程(组员)
新建文件夹,进入文件夹,打开git命令行窗口,执行命令实现远程仓库项目文件克隆
git clone 远程仓库的HTTPS链接
VSCode打开克隆下来的远程仓库对应文件(包含了.git
文件的文件夹)
使用VSCode编写项目代码
-
文件状态
U
:文件相较于本地仓库中为新增的文件;M
:文件相较于本地仓库中的原文件内容发生了修改;A
:新增的文件被添加到了缓冲区,但未添加到本地仓库;
-
添加代码到缓冲区
git add .
-
将缓冲区代码添加到本地仓库
git commit -m "提交日志"
-
查看提交版本日志
git log -g
-
回退版本
git reset --hard 版本号
-
将本地仓库代码推送到远程仓库
git push
-
将远程仓库代码更新(拉取)到本地仓库
git pull
第六节、分支
概念:
分支指的是从主线上分离出来进行另外的操作,不会影响主线,它可用来解决临时需求;
当分支做完事后可合并到主线上,而分支的任务完成可以删掉了。
好处:
①支持并行开发以此提升效率;
②独立的分支不会对其他分支产生各种影响;
查看所有分支
git branch
新建分支
git checkout 是切换分支 ,如果分支不存在则会创建分支
git checkout -b 分支名
切换分支
git checkout 分支名
推送子分支到远程
git push origin 子分支名(确保在当前分支)
分支的合并
没次合并分支都有push操作,再push之前一定需要pull[拉取远程仓库代码]
pull 后 三连(add commit push)
遇到冲突则处理冲突,处理完毕后git add . git commit git push
git merge 目标分支 (将目标分支合并到当前分支)
分支合并冲突
合并代码+二连【主分支上】
删除子分支
git branch --delete 子分支名(当前需要不在被删除的分支中)
第七节、拉取
非第一次获取远程代码
git pull [origin master]
每次向远程提交代码之前先pull在push
正常情况【修改不是同一个文件】
冲突–代码合并【修改同一个文件】
解决冲突 add commit push
第八节、git协同开发流程
15:35继续
前端:
1、组长新建仓库 ,邀请成员
2、组长克隆,配置gitignore文件,创建项目结构(涉及到初始化,下载所有插件===package.json html css js img 文件夹--注意空壳不能保存)
3、组长三连到远程仓库
4、组员克隆,新建子分支 开始自己玩 。在本地子分支里面编写代码,合并到本地主分支
5、最终组员一个一个 pull+push
6、远程仓库就是最终版本
后端:
1、创建仓库
2、下载插件、配置、构建项目结构【express先构建】
3、将git 和ignore文件拷贝
4、组长 三连
1、创建远程仓库
2、下载当前项目中所有的包【mongoose multer jsonwebtokn…】
3、将远程仓库中的git 和ignore文件拷贝到当前项目中
4、配置ingore文件【配置不需要上传远程仓库的文件或者文件夹】
5、将项目结构推送到远程服务器—启动开发项目
6、其他组员通过HTTS的连接下载组长的项目结构
7、通过git checkout -b 分支名 开启子分支 进行开发
8、开发的过程中git add. gitcommit -m
9、如果需要将当前分支的代码推送远程仓库 git push origin 分支名
10、 89 不断的重复进行
11、如果当前分支功能基本完事,将分支进行合并
- 先pull
- 在git merge -m 日志
12、另开一个新的分支,进行后续功能的开发【当前分支就是基于主分支最新的代码】
13、开发过程中 add commit push origin 分支名
14、合并【可能会代码冲突】
- pull 直接提示冲突
- 解决冲突【删除或者修改代码】
- add commit push
注意 :一旦合并分支后 记得通知成员
15、如果是一些小修小改,直接在主分支上进行【不正规】
遇到冲突解决冲突,解决完提交代码后记得告诉别人更新代码