版本控制系统
- SVN(集中式)
- 在本地写文件传给 中央服务器需要联网
- GIT (分布式)
- 在本地写文件 本地有本地仓库 不需要 联网
- 多人协作需要 联网对中央服务器操作
GIT分布式管理 单人开发使用本地仓库就可以 不需要联网 多人协作则需要联网使用中央服务器
SVN集中式管理 单人开发也需要中央服务器 必须联网
常用Linux命令
/*
1.查看当前目录下的文件
ls -l(查看详细) -a(查看全部包括隐藏比如.git)
2.清空命令框
clear
3.添加文件夹
mkdir temp
4.往文件夹中添加文件
touch 1.js
5.往文件中写入内容
vi
@1 vi 1.js
@2 i insert
@3 "ESC" + ":" + "wq" 保存退出
echo 立即创建文件 如果有文件会覆盖之前的
@1 echo 333 > 1.js
@1 echo 333 >> 1.js
6.输出文件内容
cat 1.js
7.复制文件夹/文件 cp [旧] [新] -r(递归)
@1 文件夹 cp temp1 temp2 -r
@2 文件 cp 1.js 2.js
例题 当前 =>C:\Users\AdminYZL\Desktop>
cp -r temp2/ temp/kkk
temp2下的所有文件复制到temp/kkk
8.删除文件/文件夹 rm [旧] -rf(r标识递归 f标识强制删除)
@1 rm temp2 -rf
*/
GIT本地基础流程
/*
1.创建本地仓库 (工作区 / 暂存区 / 历史区)
+ git init
2.添加到暂存区
+ git add . 全部添加到暂存区
+ git add 1.js 把1.js 添加到暂存区
注意只想把1.js生成一个历史版本就要清空原来的暂存区
3.添加到历史区
+ git commit -m "备注信息" 生成历史版本
*/
GIT常规命令操作
1.把工作区添加到暂存区后发现暂区代码写错了,要把暂存区文件删了。
//删除暂存区文件
git rm --cached xxx.xx
git rm --cached . -r
//但是一般都不怎么做 一般直接采用覆盖
git add xxx.xx
2.代码回滚
/*
需求把工作区文件添加到暂存区后,发现工作区代码写错了,要把暂存区代码回滚到工作区
*/
//把暂存区代码复制一份到工作区(覆盖工作区新写的内容)、暂存区不删除
git checkout xxx.xx
//删除当前暂存区内容并回滚到暂存区上一个版本 目的为了把上一个暂存区内容回滚到工作区
git reset HEAD .
//回退到某一个历史版本
git reset --hard 版本号
重名的会覆盖
//把历史操作步骤输出
history > xxx.txt
查看每个区代码的区别
//工作区 VS 暂存区
git diff
//工作区 VS 历史区 MASTER分支
git diff master
//暂存区 VS 历史区
git diff --cached
查看全局配置
git config -l
设置名字和邮箱
git config --global user.name 'xxx'
git config --global user.email 'xxx'
忽略上传暂存区的文件
/*
1.创建.gitignore
文件夹写 temp/
文件写 1.js
*/
分支 (分支针对的是历史区 , 工作区不变)
//查看所有分支
git branch
//创建分支 dev
git branch dev
//切换分支 dev
git checkout dev
//创建并直接切换分支
git checkout -b dev
//跳转分支之前如果工作区有代码 为了防止丢失把(工作区代码暂存)
git stash
//把跳转之前暂存的代码释放
git stash pop
GIT本地与远程仓库的联调(多人协作)
//创建客户端本地仓库
git init
//让本地仓库与远程仓库保持连接
git remote add origin "远程仓库的地址"
//查看连接信息
git remote -v
//移除本地仓库和远程仓库的连接
git remote rm origin
//更新链接通道
git remote update origin
/*
更简单的链接方式 正式开发基本都是使用个
相当于 @1 git init
@2 git remote add origin "仓库地址"
@3 git pull origin master
*/
git clone "仓库地址" 本地仓库文件夹名字不写默认是仓库地址
/*---只用一个master分支多人协作---*/
git add .
git commit -m"14.59"
git pull origin master //把中央仓库的master分支拉下来可能要解决冲突
git push origin master //把本地推送到中央仓库master分支
/*---创建多个分支---*/
@1 git checkout -b dev //创建一个dev分支 并把当前分支的历史版本带过去
@2 接着在dev分支中操作
+ 操作完了也在dev分支中提交历史版本了
+ 但是 你还在工作区中写了东西 没有提交到历史版本你就需要 git stash 把工作区中的内容暂存 以防丢失 如果不存是不允许切换分支的
@3 git checkout master //切换分支
@4 git merge dev //把dev分支合并到当前分支
@5 git pull origin master //把远程分支拉下来
@6 git push origin master
@7 git stash pop //把之前dev中暂存的内容放出来
单分支的冲突问题
如果你的本地仓库代码和中央有冲突他就会问你
Vscode使用git
@1 修改代码
@2
暂存区不清理缓存不会变为空 会使用上次暂存区的内容
比如:上次传过 index.css 这次只 git add index.html
git commit -m"将上次的index.css和这次的index.html一起打包成历史版本"