一.Git基础
1.1git是什么
Git是一个版本管理控制系统(缩写VCS),它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。
git通常在编程中会用到,并且git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。
1.1.1 git与svn的区别
Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
1.1.2分布式相比于集中式的区别
分布式相比于集中式(SVN 就是一个典型的集中式版本控制系统)的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。
1.2git的安装
下载地址 :(https://git-scm.com/downloads)
在安装的过程中,所有选项使用默认值即可。
1.3git基本工作流程
git仓库 :用于存放提交记录
暂存区: 临时存放被修改文件
工作目录:被Git管理的项目目录
1.4 Git 使用前配置
在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。
- 配置提交人姓名:
*git config --global user.name 提交人姓名* - 配置提交人姓名:
git config --global user.email 提交人邮箱 - 查看git配置信息:*
git config --list*
注意
- 如果要对配置信息进行修改,重复上述命令即可。
- 配置只需要执行一次。
1.5 提交步骤
-
git init初始化git仓库 (mac中Command+Shift+. 可以显示隐藏文件) -
git status查看文件状态 -
git add文件列表 追踪文件 -
git commit -m提交信息 向仓库中提交代码 -
git log查看提交记录
1.6 撤销
- 用暂存区中的文件覆盖工作目录中的文件:
git checkout 文件 - 将文件从暂存区中删除:
git rm --cached 文件 - 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:
git reset --hard commitID
二. git 进阶
2.1 分支
为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
2.1.1 分支细分
- 主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。
2开发分支(develop):作为开发的分支,基于 master 分支创建。
3.功能分支(feature):作为开发具体功能的分支,基于开发分支创建
2.1.2 分支命令
-
git branch查看分支 -
git branch分支名称 创建分支 -
git checkout分支名称 切换分支 -
git merge来源分支 合并分支 -
git branch -d分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)
2.2 暂时保存更改
在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。
使用场景:分支临时切换
- 存储临时改动:
git stash - 恢复改动:
git stash pop