1.版本控制
每一版本都会发生变化
更新版本,回退版本
版本控制实际就是控制文件的变化
服务器端和每个人的电脑上都会记录版本的变化,也就是说整个团队都记录了版本的变化。
不需要连网,他是分布式的,在自己电脑上也可以操作。
2.安装和使用Git
查看git软件是否安装:在git命令行(打开方式->进入项目根目录->右键->git bash here)下执行
git --version
(单击右键,查看是否有gitbash命令)
- 配置用户信息 用户名 电子邮箱(第一次使用的时候配置)
配置用户名称和电子邮箱地址,以在commit log中体现->表明这个文档这个项目是谁来做的。
修改:重新运行该命令
git config ---global user.name 'teduweb'
git config ---global user.email 'web@tedu.com'
- 查看已有的git配置信息
git config --list
- 进入项目文件夹,初始化git仓库(用来存储各个版本)
git init会生成一个.git目录(隐藏的),用于记录所有的版本
- 查看当前工作目录的状态
git status
- 往暂存区中添加文件
git add文件名称 添加个别文件
**git add .**添加所有文件到暂存区
- 把暂存区文件添加到本地仓库
git commit -m '提交的说明'
如果项目中发生修改,再执行git.status
再次执行,git add. git commit -m 添加了新的版本
- 查看提交的日志(记录提交多少次)
git log 查看当前版本以及当前版本以前的版本提交记录
git reflog 查看所有提交记录
- 从本地仓库中回退到指定的版本(到工作目录中)
git reset --hard 提交的ID HEAD表示当前的版本
ID是一种编码的
- 屏幕清除
clear
- 忽略文件(不需要提交到本地仓库的文件可以忽略)
在工作目录下 使用编辑器创建 .gitignore文件(记录哪些文件不需要提交)
把不需要提交的文件或目录(结尾加/表示目录下的所有文件)添加到.gitignore中,就不再往git仓库提交,可以执行git.status查看是否要提交该文件,一般情况下,node_modules不需要提交到git仓库。
当 git add . 往暂存区添加文件,可以看到忽略该warning,这是由于虽然windows系统下操作,但是要按照linux系统标准来执行造成的。$ git commit -m'添加了包说明文件' 添加到本地仓库,即又一个版本。
- 分支操作
如果想在主分支的基础上建立其他分支,必须把主分支先传入暂存区(git add .),再传入本地仓库(git commit -m '第一次提交' )。
git branch 查看当前所有分支
git branch 分支名称 创建一个新的分支,把当前所有的分支拷贝,作为一个副本。
git checkout 分支名称 切换分支
例如:
创建文件product.html商品模块
文件要提交到商品分支本地仓库(前提要切换到该分支下查看)
$git checkout product $git add . $git commit -m '商品模块开发完毕'
回到主分支下,工作目录里就看不见该文件,Product.html在商品分支下
- 创建用户分支
1.先创建分支,再切换到该分支下
2.工作目录里创建html文件
3.分支下操作完看状态
4.提交分支
$git add .
$git commit -m '用户模块开发完毕'
5.查看
6.回到主分支下
git merge 分支名称 在当前分支基础之上,将另一个分支并入进来
git branch -d 分支名称 删除已经合并的分支
git branch -D 分支名称 强制删除分支,分支没有合并
3.远程仓库
Github全球最大的代码托管平台
码云 国内最大的代码托管平台
介绍:git的廉价平替 服务器在国内,运行不废劲,在国内也形成了一定的规模,git的一些项目插件在码云上可以找的到
(1) 使用gitHub 花钱不公开
注册
登录
先创建仓库
远程仓库地址:https://github.com/huwenhao006/mytedu.git
回到本地工作目录打开gitbash,推送项目到giHub
git push -u 远程仓库地址 分支名称 推送到远程地址
上传完成
团队协作:添加团队成员
邀请的用户登录个人邮箱,然后邮箱确认,就可以共同管理项目
(2)使用gitee 操作和gitHub一样,花钱不公开
注册
登录
新建仓库
填写仓库信息,私有依然收费
获取地址
git push -u 远程仓库地址 分支名称 推送到远程地址
输入用户名和密码
推送成功
如果验证密码写错,第二次推送是已经记录过的,还是推送不过去,怎么去改?
Window+R->control打开控制面板->用户账户,凭据管理器->windows凭据->普通凭证->删除
4. 团队协同
团队协作:添加团队成员
邀请的人登录码云,会看到私信里通知被邀请,接受邀请就能进入团队。
被邀请的人加入团队后:
1,本地新建目录,右击gitbash打开命令行
git clone 远程仓库地址 第一次下载下来
git pull远程仓库地址 从远程仓库拉取代码(其他时候需要远程仓库代码)
其他人也可以克隆,但是没有上传权限,团队成员可以上传
2.克隆下来以后,被邀请的人就能在项目的基础上进行开发,然后利用团队成员的权限 进行上传。
- 远程仓库和本地代码同步(配置公钥)
1.仓库与本地同步->建立公钥
为什么要建立公钥->公钥是你当前设备和网络仓库的通路
只要创建了这条通路,才能实现仓库和本地代码同步
2.把仓库同步到本地
- 1.在gitee上新建仓库,进入需要同步的仓库,点击克隆
- 2.点击复制ssh地址
- 3.到需要同步网络仓库的本地位置,打开gitBashhere
- 4.输入命令 git clone[复制的ssh地址]
3.在本地仓库中创建vue脚手架项目
- 1.到本地仓库所在的文件夹中创建 vue create xxxx
- 2.项目名称尽量和仓库名称保持一致(仓库名称不要有大写字母)
因为会提示:创建的项目文件夹已经存在,选择merge(合并)
4.把本地仓库中的项目同步到远程仓库gitee上
在本地项目中打开gitbush
gitstatus 看变化(不必要的操作)
gitadd . 把本地仓库变化的文件提交到暂存区
gitcommit -m '提交说明' 提交本地仓库
注释:提交说明写明所写代码的用处
gitpush 把缓存中的内容推到网络仓库中
5.git分支操作步骤
一、拉取IMDP_V100R001C00分支
1、新建一个目录,例如 d:/work/spms3.0/IMDP_V100R001C00,用于330版本修改bug
2、在这个目录下运行git bash
2.1 首先fork自己的私库:
git clone
如:git clone http://10.88.40.177:8099/306205/spms-integration-core.git
2.2 然后增加主库的信息:
cd
如:cd spms-integration-core
git remote add
如:git remote add upstream http://10.88.40.177:8099/spms-integration/spms-integration-core.git
2.3 然后拉取主库的分支:
git fetch
如:git fetch upstream
git checkout -b /
如:git checkout -b IMDP_V100R001C00 upstream/IMDP_V100R001C00
2.4然后上传到私库
git push origin
如:git push originIMDP_V100R001C00
这样私库中就会有这个分支了。之后330的bug修复就在这个目录下进行。
二、拉取dev分支
1、新建一个目录,例如d:/work/spms3.0/dev,用于dev分支的开发。
2、在这个目录下运行git bash
2.1 首先fork自己的私库:
git clone
如:git clone http://10.88.40.177:8099/306205/spms-integration-core.git
2.2 然后增加主库的信息:
cd
如:cdspms-integration-core
git remote add
如:git remote add upstream http://10.88.40.177:8099/spms-integration/spms-integration-core.git
2.3 然后拉取主库的分支:
git fetch
如:git fetchupstream
git checkout -b /
如:git checkout -bdev upstream/dev
2.4然后上传到私库
git push origin
如:git push origin dev
这样私库中就会有这个分支了。之后dev的开发就在这个目录下进行。
三、代码提交、推送和合并请求
代码提交和推送,都要按照当前分支进行,即: IMDP_V100R001C00分支只允许提交和推送到私库的IMDP_V100R001C00分支 dev分支只允许提交和推送到私库的dev分支
提交合并请求(merge request,MR)时,也要注意,私库的IMDP_V100R001C00分支只允许合并到主库的IMDP_V100R001C00分支,私库的dev分支只允许合并到dev分支。
主库各个项目的负责人(maintainer)要负责首先审核是否对应同样的分支,如果不对应则直接拒绝;然后再检视代码。