- 一、Git 版本控制
- 前言:
- 常见版本控制工具:
- 集中版本控制
- 分布式版本控制
- Git和SVN的区别
- 1.SVN
- 2.Git
- Linux 命令
- 1.设置用户名与邮箱
- 2.初始化
- 3.查看文件状态
- 4.忽略文件 .gitignore
- 二、基础使用
- 1.1.1 初始
- 1.1.2 文件添加到仓库
- 1.1.3 说明
- 1.1.4 暂存区文件
- 1.1.5 提交日志、历史记录
- 1.1.6 分支
- 1.1.7 上传
- 1.1.8 拉取
- 1.1.9 克隆
- 1.1.10 查看远程地址
- 2.1 课题:版本回退
- 3.1 项目初始上传gitee、github操作
- 三、最后
版本控制是一种在开发的过程中用于管理我们的文件、工程等内容的修改历史,提供修改、备份等操作
- 实现跨区域多人协同开发
- 追踪、记载文件的历史记录
- 并行开发,提高开发效率
- 组织、托管、保护源代码和文档
概括:用于管理多人协同开发项目的技术
常见版本控制工具:git(分布式版本控制系统)、svn(集中式管理版本控制系统)、cvs(C/S系统,代码版本控制软件)、vss(微软出品版本控制系统)
集中版本控制所有版本数据都保存在服务器上,协同开发者从服务器中同步更新或上传修改
是一对多的关系。
分布式版本控制所有版本信息仓库都存在于本地的用户,可以在本地查看所有历史、离线提交
Git和SVN的区别 1.SVN是集中式版本控制系统,版本库放在中央服务器。工作时,使用自己电脑获取最新中央服务器的版本,然后工作,工作完成后,把自己所需要提交的活推送到服务器。
特点:必须是联网才能工作,对网络带宽比较高
2.Git是分布式版本控制系统,没有中央服务器,每个人的电脑都是一个完整的版本库。工作不需要联网了。
Git是目前世界上最先进的分布式版本控制系统
Linux 命令查看系统config
git config --system --list
查看当前用户配置
git config --global --list
常用命令:
1) cd /xx 切换目录
2) cd.. 回退到上一个目录,
3) pwd 显示当前所在的目录路径
4) clear 清屏
5) ls 列出当前目录下的所有文件
6) touch xx.js 在当前目录下新建一个xx.js文件
7) rm xx.js 删除xx.js文件
8) mkdir xxx新建一个目录,就是新建一个文件夹
9) rm -r xxx 删除一个xxx文件夹
10)mv xx.js xxx 移动文件,将xx.js移动到xxx文件夹中
11) history 查看命令历史
12) help 帮助
13) exit 退出
1.设置用户名与邮箱
安装git后首要做的事就是设置用户名和邮箱地址,
git config --global user.name "xxx" //设置用户名称
git config --global user.email "xxx.@qq.com" //设置邮箱
2.初始化
git init //生成一个隐藏的.git文件(本地版本仓库)
3.查看文件状态
git status //查看所有文件状态
git status [文件名] //查看指定文件状态
git commit -m '内容' 提交暂存区中的内容到本地仓库
克隆远程仓库
git clone [仓库地址]
4.忽略文件 .gitignore
有些时候我们不需要将某些文件纳入版本控制中,在目录中建立.gitignore文件,代表忽略文件中的内容,其遵循一些规则
*.text //过滤所有后缀为text的文件
/xxx/ //过滤整个文件夹
/xx/xx.text //指定过滤文件夹下的文件
!src/ //!表示不过滤该文件夹
常见的忽略操作有
# dependencies npm包文件
/node_modules //忽略
# production 打包文件
/build
详细了解传送门:Git忽略提交规则
二、基础使用 1.1.1 初始目录变成Git可以管理的仓库
git init
目录下就多了一个隐藏的.git目录,是Git用来跟踪管理版本库的
git add
可以有多个选择,如输入.
代表上传所有修改文件,或指定文件名
git add .
git add readme.txt
1.1.3 说明
git commit
-m
后面输入的是本次提交的说明,
git commit -m 'xxxxx'
1.1.4 暂存区文件
git status
查看暂存区文件
git restore --staged <file>
-- 将文件从缓冲区移除
git log
查看当前分支的历史版本等等
master主分支,一般用来发布新版本,一般不允许在上面直接工作,会创建如dev这样的分支来进行工作,工作完成后,可以将dev分支合并到master上来
// 列出所有本地分支
git branch
// 列出所有远程分支
git branch -r
//新建分支
git branch [分支名]
git branch -b [分支名] //新建一个分支,且切换到该分支
//删除分支
git branch -d [分支名]
git push origin --delete [分支名] //删除远程分支
//切换分支
git checkout [分支名]
//合并指定分支到当前分支
git merge [分支名]
1.1.7 上传
git push
-- 上传修改的文件
git push -u origin xxx
-- 将其推送到服务器上,(master是默认分支)
git push <远程主机名> <本地分支名>:<远程分支名>
1.1.8 拉取git pull
-- 从远处仓库进行拉取,同步,更新操作
git clone -b [分支名称] [git地址]
例:git clone https://github.com/xxxx/xxxxx.git
git remote -v
1、看见所有版本信息
git log
2、根据id回退到指定的版本
git reset --hard id
3、推送本地到远程仓库 让远程仓库和本地一致,到当前本地的版本
git push origin HEAD --force
当回退后发现不需要回退了,消失代码重新找回方法:
查看命令操作的历史
git reflog
找到需要操作的id,使用git reset --hard id
就回退到当初一模一样的版本
删除本地所有未提交的更改
1、如果没有执行git add命令的,也就是没有提交到暂存区
使用命令
git checkout -- [名称]
放弃所有,执行git checkout .
2、已经执行了git add 缓存的,使用命令
git reset Head [名称]
放弃所有,git reset HEAD .
3、已经使用git commit
git reset --hard HEAD^
3.1 项目初始上传gitee、github操作
git init
- 创建隐藏.git版本仓库git add . && git add xxx.text
推送全部文件或指定文件到暂存区git commit -m 'xx'
添加注释git remote add 仓库名称 {仓库地址}
origin代表远程地址的别名git push -u origin master
推送到指定远程仓库:gitee、github
git remote rm xxx
删除远程仓库
git remote rename {旧仓库名} {新仓库名}
修改仓库名
未完待续...
相关链接:Gitee官方大全、Gitee官方游戏学习、github传送门
导师博客(一小时学会Git)
学生gitee地址