版本控制:
1. 概念:对软件开发过程中,各种程序代码,配置文件、说明文档等文件变更管理 。
2. 功能:
追踪文件的变更,将文件什么时候、由什么人更改以及更改的内容等信息记录下来
实现并行开发
3. 特点:随着文件的改变,文件的版本号回增加。
4. 内容:
输入输出控制
分支与合并
历史纪录
5. 常用的版本控制工具
集中式:SVN,CVS等
分布式:Git
集中式与分布式:
1. 集中式版本控制
版本库集中存放在中央服务器,每次编码时,需要从中央服务器取得最新的版本,完成工作之后,再把自己
完成的东西推送给中央服务器。集中式版本控制必须要联网。
2. 分布式版本控制
严格来说,分布式也有一个中央服务器,它的特点在于可以在自己的机器上clone一个和中央服务器中完全一
样的副本,在不能联网的情况下,我们仍然可以提交文件,查看log,创建分支等。
3. Git详解
下载安装
1. 下载:https://git-scm.com/downloads(下载地址)
2. 安装
Windows:直接点击安装包运行
Mac:通过homebrew安装git
Ubuntu:sudo apt-get install git
3. 使用
配置用户名和邮箱
仓库
4. 版本管理其他命令
查看提交日志
版本回退
5. 分支管理
6. 冲突解决:如果出现合并冲突,手动解决冲突内容、再重新提交,可以通过git log 查看分支合并情
况
7. 分支管理(原则)
master 应该保持稳定,只用来发布新版本,不能直接去修改master上面的代码
通过,真正的开发工作,在dev上面进行,等到要发布新版本时,再把dev合并到master
工作中,用到的分支一般有master,dev,release(用于发布测试版本),bug(修改bug),feature
在默认情况下,git合并分支会采用Fast forward,在此模式中删除分支后,会丢掉分支信息
8. 标签管理
Git的基本操作
一、配置
- 新建并进入目录
- 初始化
- 查看git
- 配置连接(ssh key)
1.生成ssh key:
ssh-keygen.exe -t rsa
2.进入密钥对生成目录(上图的目录)
3.打开id_rsa.pub,拷贝内容并复制到github.com
二、操作文件
- 新建reademe.txt
- 写入内容保存后查看状态
- 向git本地仓库添加文件
- 添加当前仓库所有有修改的文件
git add .
- 提交文件
git commit -m 'commit the file reademe.txt'
-m:本次提交文件的说明信息
- 解释:add与commit
工作区:电脑都能看到的目录
暂存区: .git中的index文件
git add就是把文件修改添加到暂存区中
git commit是把暂存区的内容添加到当前分支中
注意:git commit只负责提交已经保存到暂存区中的内容
远程仓库
- 创建远程仓库
- 将本地仓库与远程仓库进行关联
- 将本地仓库的修改推送到远程仓库中
- 从远程仓库中克隆
版本管理其他命令:
查看提交日志:
- 显示从最近到最远的提交日志
git log
- 优化输出:
git log --pretty=oneline
版本回退
- 把暂存区回退到上一次(回退单个文件)
git reset HEAD
- 回退到上一次提交(所有文件)
git reset --hard HEAD
- 回退到指定版本
git reset --hard commit_id
- 在工作区中的回退(撤销修改)
git checkout --
分支管理
- 查看当前所有分支
git branch
- 新建分支
- 切换分支
- 在新建的同时切换到新的分支
分支的合并
- 把dev分支合并到master上
git merge dev
- 分支删除
git branch -d <branch_name>
git branch -D <branch_name>强制删除
标签管理
- 创建标签
只创建一个标签
git tag
创建带有说明的标签:
git tag -a 标签名称 -m '说明内容'
- 查看标签
git tag
- 查看指定标签的信息
git show
- 删除标签
删除本地标签
git tag -d
删除远程标签:
先删除本地标签,再删除远程标签
- 推送标签
推送指定的标签
推送所有还没有推送的标签
git push origin --tags
解决代码冲突
通过git status查看冲突文件是哪个
先找到冲突文件,然后文件里面会用
<<<head
冲突分支1
======
冲突分支2
>>>
这种方式标识出来
看看哪一个分支的代码才是你需要的