1. 版本控制
版本控制是一种在开发过程中用于管理我们对文件、目录或工程
等内容的修改历史
,方便查看
更改历史记录,备份
以及恢复
以前的版本的软件工程技术。
功能:
- 实现跨区域多人协同开发
- 追踪和记载一个或者多个文件的历史记录
- 组织和保护源代码和文档
- 统计工作量
- 并行开发、提高开发效率
- 跟踪记录整个软件的开发过程
- 减轻开发人员的负担,节省时间,同时降低人为错误
主流的版本控制器有:Git、SVN、CVS、VSS、TFS
主流的三种版本控制类型:
-
本地版本控制
记录文件每次的更新,对每个版本做一个快照,或是记录补丁文件,适合个人用。 -
集中版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。代表产品:SVN、CVS、VSS。 -
分布式版本控制
所有版本信息仓库全部同步到本地的每个用户,每个用户可以在本地查看所有版本历史,可以离线在本地提交,只需要在连网时push到相应的服务器或其他用户那里。代表产品:Git。
2. Git和SVN的区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器上的,工作的时候,用的是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后需要把自己的代码推送到中央服务器上。必须联网才能工作。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网。
3. Git配置
- 查看配置清单
git config -l
- 系统配置
系统配置文件路径:Git/etc/gitconfig
git config --system --list
- 用户自定义配置
配置文件路径:C:\Users\用户名.gitconfig,如果要删除用户自定义配置,可以修改这个配置文件里的内容。
git config --global --list
- 设置用户名和邮箱(首次安装Git必须要配置的)
方法1:命令行配置
git config --global user.name "atiaisi"
git config --global user.email "atiaisi@qq.com"
方法2:手动添加
git config -e --global
添加如下内容:
[user]
name = atiaisi
email = atiaisi@qq.com
4. Git工作原理
- 工作区:本地存放项目代码的地方,就比如我们在本地创建的一个文件夹。
- 暂存区:用于临时存放代码改动,它只是一个文件,保存即将提交的文件列表信息。
- 本地资源库:就是安全存放数据的位置,这里面有提交的所有版本的数据。其中HEAD指向
最新放入仓库的版本
。 - 远程资源库:托管代码的服务器
本地仓库.git目录结构:
5. Git基础操作
5.1 本地搭建仓库
- 初始化仓库
git init
- 查看仓库状态
git status
-
无文件变化
-
新建文件后仓库状态,此时文件处于Untracked状态
-
将文件添加到暂存区
-
提交暂存区文件到本地仓库
- 忽略文件
有时候不想把某些文件纳入版本控制中,比如数据库文件、临时文件、设计文件等,在主目录下建立".gitignore"文件,该文件可以指定Git应该忽略的 未跟踪 文件。该文件有如下规则:- 忽略文件中的空行或以
#
号开始的行将会被忽略。 - 可以使用Linux通配符。例如:星号(
*
)代表任意多个字符,问号代表一个字符,方括号([abc])代表可选字符范围,大括号({string1,string2, string3})代表可选的字符串等。 - 如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
- 忽略文件中的空行或以
例子:
# .gitignore
# 下面是一些忽略的文件,忽略的目录或文件路径都是相对于.gitignore文件来说的。
*.txt # 忽略所有的.txt文件
!lib.txt # lib.txt不忽略
tmp/ # 忽略tmp目录下的文件
5.2 克隆远程仓库
git clone [远程仓库url]
5.3 分支操作
- 查看分支
git branch
- 新建分支,但是停留在当前分支
git branch dev
- 创建一个分支,并切换到该分支
git checkout -b dev1
- 合并指定分支到当前分支
git merge dev1
- 删除分支
git branch -d dev1
- 删除远程dev分支
git push origin --delete dev
参考资料
- Git官网: https://git-scm.com/download
- 淘宝镜像: https://registry.npmmirror.com/binary.html?path=git-for-windows/