关于版本控制
版本控制软件
版本控制系统分布
分类:
-
本地版本控制系统:单机运行,使维护文件版本的操作工具化
-
集中化的版本控制系统:联网运行,支持多人协作开发;性能差
- 分布式版本控制系统:联网运行,支持多人协作开发;性能好
git的基本概念
git的特性
各个版本控制系统版本控制原理
- svn的差异:
- Git的记录快照:
Git中的三个区域
- 工作区:处理工作的区域
- 暂存区:已完成的工作的临时存放区域(等待被提交)
- Git仓库:最终储存区域
Git中的三种状态
安装并配置Git
-
(官网)下载
-
配置用户信息:
Git Bash
-
Git的全局配置文件:
-
检查配置信息:
-
获得帮助信息:
* git help config(config可以为任意命令): 打开git config命令的帮助手册
* git config -h: 更简明
Git的基本操作
获取Git仓库的两种方式
- 在现有目录中初始化仓库:
- 将远程仓库克隆到本地:
git clone 远程仓库地址
工作区文件的四种状态
检查文件的状态
精简显示文件状态
git status -s(-s是short的缩写)
- 红色??:未跟踪
- 绿色M:暂存
- 红色M:修改
跟踪新文件
git add 文件名 到暂存区
提交更新
修改的文件
- 暂存
2. 提交
跳过使用暂存区域
撤销对文件修改
向暂存区一次性添加多个文件
git add .
取消暂存的文件
git reset HEAD 文件名
移除文件
忽略文件
glob模式
例子
# 忽略所以的 .a文件
*.a
# 但跟踪所有的 lib.a,即使前面忽略了 .a文件
!lib.a文件
# 只忽略当前目录下的 TODO 文件,而不忽略 其他/TODO
/TODO
# 忽略任何目录下名为 build 的文件夹
build/
# 忽略 doc/notes.txt, 但不忽略 doc/server/arch.txt
doc/*.txt
#忽略 doc/ 目录及其所有子目录的 .pdf文件
doc/**/*.pdf
查看提交历史
默认情况下git log显示的是目前你HEAD的位置的git提交日志,默认不加参数,git log显示如下:
- commit 哈希id
- 提交的Author信息
- 提交的日期和时间
- commit info信息
- git log : 所有
- git log -2: 最近两条
- git log -2 --pretty=oneline: 在一行上展示最近提交历史的消息
回退到指定版本
开源概念
常见的5种开源协议
开源项目管理平台
github
远程仓库的两种访问方式
- 基于HTTPS 将本地仓库上传 Github
- SSH
生产SSH KEY![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/c8de1b8fabda57a78b2e84791c9494da.png)
配置 SSH KEY
检测Github里的SSH KEY配置是否成功
分支
概念
平行世界:一个学后端,一个学前端,有一天合并,都会了。
工作中协作
master主分支
功能分支
查看分支列表
创建新分支
切换分支
分支的快速创建和切换
合并分支
git commit -m “完成了登陆功能”(在分支输入)
删除分支
####需要切换到其他分支
####需要合并到主支,否则:
git branch -D 分支名称 强制删除
遇到冲突时的分支合并
- 采用当前更改
- 采用传入的更改
- 保留双方的更改
- 比较更改
案例
####保留双方更改
查看分支情况
- git log --graph --pretty=oneline --abbrev-commit 简易
- git log --graph 详细
将本地分支推送到远程分支
本地切换到哪个,推送哪个
默认名字:origin
此后更新: git push就可以
查看远程仓库分支列表
git remote show 远程仓库名字
git branch -r
跟踪分支
拉取远程分支的最新代码
在哪个分支,更新哪个