目录
-
版本管理工具概念
-
安装
-
个人开发流程
-
团队开发流程
版本管理工具概念
概念
-
版本控制在生活中就有体现。大学的毕业设计论文,会前后编写10几个版本。就是为了能够进行版本回退。
-
在项目开发中,也会有这样的需求
-
能够实现版本回退,随时回退到之前的任何一个版本
-
团队项目代码共享和同步问题。
-
分类
-
目前普及的两个版本管理工具:
git
和svn
-
git:分布式的版本管理工具
-
svn是集中式的版本管理工具
git和svn的对比
-
git是有远程仓库和本地仓库的。哪怕网络断掉之后,仍可以继续操作本地仓库。恢复后更新就可以了。
-
svn是只要一个远程仓库,需要网络才能使用。
git和GitHub或gitee的联系
-
GitHub是最大的基于git的代码在线托管平台。包含了目前绝大多数的开源的第三方库(jQuery、vue、react)
-
gitee:码云。国内版本的
github
.
环境安装
下载git的客户端并安装
-
淘宝提供的镜像地址:
https://npm.taobao.org/mirrors/git-for-windows/
-
不仅仅可以安装到c盘,c以外的盘都可以。
-
安装过程一路next即可
-
安装测试
-
桌面右击菜单中有
git GUI here和git bash here
选项 -
打开cmd,输入命令进行测试
git --version
git的初始化
-
配置用户名和邮箱。这个是为了团队项目中为了区分代码是谁提交的。姓名用真实名字的拼音,邮箱是可以任意写的,但是要满足邮箱的格式。
-
打开git的终端:
git bash here
, 输入以下命令1、 设置名字git config --global user.name "test" 2、 设置邮箱 git config --global user.email "test@qq.com"
-
回车即可,没有任何输出。
-
git的工作流程
1. 注册码云账号
2. 创建一个远程仓库:即项目
-
需要勾选初始化仓库,添加
.gitgnore
选项中选择任意一个即可 -
创建后默认只有一个
.gitgnore
配置文件
3. 将远程仓库的代码拷贝到本地仓库
-
使用git终端输入命令获取代码:
git clone https://gitee.com/test/test.git
-
在终端对应目录下载项目文件(路径不能包含中文)
-
下载中有一个隐藏目录
.git
.里面包含了本地仓库里的所有内容,也就是所有版本的信息。
-
个人开发流程
1. 将修改或添加的文件保存到暂存区
-
在项目目录下打开git终端,输入以下命令:
git add .
-
将项目下所有修改的文件都保存到暂存区
-
-
可选:将指定的某个文件保存到暂存区
git add 文件路径
-
正常情况下没有输出
2 . 将保存到暂存区里的文件提交到本地仓库
-
在项目目录下打开git终端,输入以下命令:
git commit -m "当前提交的说明"
-
每次提交都会生成一个新版本。版本是可以回退的。
-
3. 将本地仓库的最新版本代码推送(push)到远程仓库
-
在项目目录下打开git终端,输入以下命令:
git push
-
第一次提交需要输入码云的账号和密码
-
注意点
-
在vscode中,需要将下载的文件夹作为vscode 的工作区的目录才可以看到文件的 颜色变化
-
u
:表示新文件,没有保存到暂存区中 -
a
:表示保存到暂存区,但没有被提交
-
个人开发扩展
将暂存区的所有文件撤回,即设置暂存区为空
-
在项目目录下打开git终端,输入以下命令:
git reset HEAD
将暂存区的指定文件撤回
-
在项目目录下打开git终端,输入以下命令:
git restore --staged 文件名
团队开发-分支
流程讲解
1. 创建一个子分支
-
在项目目录下打开git终端,输入以下命令:
git checkout -b 子分支名称
-
子分支一般是自己的名字
-
2. 切换到子分支
-
在项目目录下打开git终端,输入以下命令:
git checkout 子分支名称
3. 走个人开发流程
-
将文件添加到暂存区
-
将暂存区的文件提交到本地仓库(子分支)
-
推送到远程仓库的子分支
-
在项目目录下打开git终端,输入以下命令:
git push origin 子分支名称
-
-
可选:如果要从远程的某个分支拉取代码。可以使用以下命令
git pull origin 子分支名称
4. 共享代码流程(将代码推送到远程的master分支:在master分支下进行操作)
-
先切换到master分支
git checkout master
-
将子分支的代码和本地的master分支代码进行合并
git merge 子分支名称
-
拉取远程m aster分支的最新代码,检查是否有冲突
-
比如昨日提交的a页面,今天同事更新了。这时候就需要更新本地的a页面
git pull
-
-
所有冲突解决后,提交master分支代码到远程的master分支
git push
继续开发:必须在个人子分支中开发
-
在master分支下将远程master分支的代码拉取下来
git pull
-
切换到个人子分支
git checkout 子分支名称
-
个人分支合并master分支的代码
git merge master
-
就在个人分支上继续开发。
版本的回退
-
查看当前分支的版本列表
git log
-
回退到指定的版本
git reset --hard 14fef9940284385af334620bd43854a625d06c4e
让git忽略某些文件夹。即不参与提交或保存
-
在
.gitgnore
中书写要忽略的文件夹名称即可
团队项目git使用流程
项目经理或技术主管或组长的流程
-
在码云中新建一个远程仓库:新建项目
-
完成项目的初始化
-
npm init
-
设置package.json.确定项目所需的依赖
-
设置webpack。
-
给每个组员设置一个保护分支
-
注意:远程仓库里有分支,但是本地仓库是没有的,所以需要先拉取分支到本地再进行操作
-
-
通用流程(组员和组长)
-
代码的同步
-
拉取master分支的代码
-
切换到个人分支
-
和master分支进行合并,确保个人分支的代码是最新的
-
-
个人开发流程
-
保存到暂存区
-
提交到本地仓库
-
推送到远程仓库
-
-
代码共享
-
切换到master分支
-
合并个人分支的代码
-
拉取远程master分支的代码。解决冲突
-
解决冲突后推送到远程master分支
-