一.简介
1.版本控制
-
版本控制:对当前版本多个版本进行管控
维护工程蓝图的是标准做法,记录版本的变化是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。 -
学习原因:没有版本控制会出现多个问题
备份多个版本,浪费存储空间,花费时间长。 难以恢复至以前的历史版本,容易引发BUG,解决代码冲突困难。 难于追溯问题代码的修改人和修改时间、修改内容、日志信息。 项目升级,版本发布困难。 无法进行权限控制。 比如 测试人员:只读;开发人员:模块权限。 开发团队在工作过程中无法多条生产线同时推进任务,效率慢。 -
控制路线
- 集中式控制流程:电脑连接中央服务器,克隆代码到本地(共同开发),修改发送到中央服务器(联网才能工作,中央服务器损坏则数据都丢失)
- 分布式:安全性较高,每个人都有自己的版本库,不需要联网,两个电脑可以相互推送,一个丢失另外一个还会保留,有一个电脑可以充当中央服务器的作用,只存在存储发送数据的作用
2.版本控制工具
- 集中式版本控制工具: SVN、VSS、CVS
- 分布式版本控制工具:Git、Mercurial、Bazaar……
二.Git 和 Svn不同
-
差异
* Git 只关心文件的整体是否发生变化。而SVN这类版本控制系统则只关心文件内容的具体差异。 * svn这类系统每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容。然而 Git 并不保存这些前后变化的差异数据 * Git更像是把 变化的文件 作一个快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息(Hash值)并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。 -
Git优势
* 分布式,强调个体 * 公共服务器压力和数据量都不会太大 * 离线工作,每个人的本地仓库,大部分操作在本地库完成,不需要联网(SVN做不到) * 分支操作非常快捷流畅 * 可以吃后悔药, 尽可能添加数据而不是删除或修改数据(删除或修改不容易恢复,而每次添加一个版本,历史版本都有) * 速度快、灵活, 有能力高效管理类似 Linux * 内核一样的超大规模项目(速度和数据量)
三.git下载与安装
-
下载:官网,下载所需版本https://git-scm.com/
根据自己电脑版本下载对应版本
-
安装Git
-
使用Git
-
打开命令行窗口
安装Git后,在资源管理器的空白处,单击鼠标右键打开窗口,点击 Git Bash Here ,打开Git命令行窗口,在窗口中可直接使用Linux命令操作:
-
初始化Git本地库
命令: git init
注意: .git 目录中存放的是本地库相关核心配置文件,也不要随意删除与修改 .git 目录仓库目录说明: hooks目录:脚本文件的目录。 info目录:保存了不希望在 .gitignore 文件中管理的忽略模式的全局可执行文件 logs目录:日志目录 objects目录:存储所有数据内容 refs目录:存储指向数据(分支)的提交对象的指针 config文件包含了项目特有的配置选项 description文件仅供 GitWeb 程序使用 HEAD文件指向当前分支
-
-
本地仓库代码推送到远程仓库的方式
如何创建远程仓库? 1. 注册github(代码托管平台) 2. 创建远程仓库 点击 + 号 创建 远程仓库 -》 仓库名称(英文) -》 对这个仓库的描述 -》 勾选创建README.md -》 点击按钮创建 如何将远程仓库克隆下来? 1. 复制仓库地址 2. 回到桌面 -》 鼠标右建 》 点击git bash here -》 打开命令行工具 3. 在命令行工具输入 git clone 仓库地址 4. 远程仓库就克隆到本地了 如何将本次仓库的代码推送到远程仓库? 1. 把要上传的项目放到从远程仓库克隆到本地的仓库 2. 在命令行工具输入 cd 本地仓库地址, 进入到克隆的仓库 3. 将工作区(仓库)代码提交到暂存区 git add . 提交所有文件 git add "文件" 提价单个文件 4. 将暂存区的代码提交到本地仓库 git commit -m "本次提交的描述" 5. 将本地仓库的代码推送到远程仓库 git push -
git命令:
git add 文件名 / . 说明: git add 文件名 表示我们是将单个文件提交到暂存区 git add . 就表示将所有的文件提交到暂存取 git commit -m "对本次提交的描述" 说明: git commit命令表示的是将暂存区的代码提交到本次仓库 -m "" 这个表示的是对本次提交的描述,双引号里面写的是对本次提交的描述 git push 说明: 将本地仓库的代码推送到远程仓库(代码托管平台) git clone "仓库地址" 说明: 将远程的仓库克隆到本地