Git与通过Git添加提交文件
HTML5学堂-利利:前面几个礼拜,我们比较全面的介绍讲解了关于AJAX中相对比较高级的知识 - 跨域。本周周三的文章,想为大家介绍一款工具——Git。如果开发者们有进入大公司的发展的想法,这种工具是必不可少的。相信我们做开发的朋友们,SVN必然会接触,对于大公司来说,SVN略low,它们使用的通常是Git —— 分布式版本控制系统。
今日内容:
1 Git是什么
2 Git(分布式)与SVN(集中式)的区别
3 Git的安装与环境配置
4 在Git中进行版本创建
Git是什么?
Git:分布式版本控制系统。
关于版本控制系统,可能之前听说过,也有不少人在使用(比如SVN),但是Git与其他的一些控制系统有所不同。
SVN属于“集中式版本控制系统”,而Git是“分布式版本控制系统”。
集中式与分布式有什么区别?
集中式的工作原理:
所有的客户端都直接与服务器联系,而彼此不互通(在最后,利利绘制了图解,如果不能理解文字,可以翻到最后看图)
集中式的特点
- 集中式的版本控制系统要求必须联网;
- 在集中式的版本控制系统当中,中央服务器就好比是一个图书馆,如果我们希望修改一本书,就需要先将书借走,在修改之后,再放回图书馆。
- 相对安全性会比较低,一旦中央服务器出现问题,所有人都没法干活了
分布式的工作原理
所有的客户端都可以互相联系,同时任意一个客户端都可以作为一个服务器(在最后,利利绘制了图解,如果不能理解文字,可以翻到最后看图)
分布式的特点
- 工作时不需要联网,因为版本库就在每个人的电脑上。
- 当多个开发者都修改了同一个文件,那么这几个人只需把各自的修改推送给对方,就可以互相看到对方的修改了。
- 安全性高,每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一份就可以了。
PS:很少在两人之间的电脑上推送版本库的修改,通常会将其中一台机器作为服务器,这样操作的主要原因是方便“交换”大家的修改。当然,如果我们没有“创建”服务器,也并不会影响版本的互相“交换”。
Git的安装
在安装的过程中,大部分都是采用默认状态,除了如下几个操作之外:
- 修改文件路径:默认的存储位置是C盘,如果你不希望Git被安装在C盘就自定义一下喽~
- 选择可以使用哪种操作方法进行Git的操作
Git有两种操作方法,一种叫做Git Bash;表示的是windows下的命令行工具;一种叫做Git GUI;表示的是windows下的图形化页面。选择下图中的第二项,表示的是两种操作方法都进行安装。
检测是否安装成功
如果安装成功,当使用鼠标右键点击桌面时,菜单当中会出现两个新的选项,如图:
定义自己机器的基本信息
在Git的协作过程当中,每个机器都应当有自己的信息,这样才能够知道每次修改是谁在进行操作。
定义Git基本信息的方法命令
点击右键,选择菜单中的“Git Bash Here”,调出命令对话框
$ git config --global user.name "HTML5学堂"
$ git config --global user.email "email@example.com"
--global参数:用于表示全局,使用了这个参数,则表示当前机器上所有的Git仓库都会使用这个配置
在Git中进行版本创建
找到要创建版本库的文件夹
找到你需要生成版本的地方,然后,在该目录下点击右键,调用Git Bash here
打开运行窗口之后,能够从命令窗中看到路径“/u/Git_test h5course”
相关命令
$ mkdir 文件夹名
$ cd 路径
$ pwd
$ mkdir 文件夹名。代码说明:mkdir表示的创建一个文件夹。如果我们希望,在当前的路径“/u/Git_test h5course”下,创建一个名为“h5”的文件夹,那么输入如下命令:“$ mkdir h5”
$ cd 路径。代码说明:cd表示的是路径,通过cd 路径,进行当前路径的变化。比如当我创建h5文件夹之后,希望能够进入这个文件夹进行操作,就输入“$ cd h5”即可。如果想从当前路径返回到上一级,则使用“$ cd ../”即可。
$ pwd。代码说明:该命令的主要作用,是用来显示当前目录。
将目录变成Git可管理的仓库
通过git init命令把这个目录变成Git可以管理的仓库
PS:当前目录下多了一个.git的目录(默认是隐藏状态),这个目录是Git来跟踪管理版本库的,不要随意手动修改这个目录里面的文件,否则Git仓库可能会被破坏。
添加并提交文件
在当前的仓库当中,可能有一些文件我们需要添加到版本库当中,有些文件我们不需要添加到版本库当中,在这个里面,我们使用add和commit命令进行操作。
第一步,需要在当前的仓库下运行(也就是使用了init命令时的文件目录,在这个实例当中是“/u/Git_test h5course/h5”)
在当前的仓库下,创建一个html文件,比如index.html
第二步,将该文件通过git add方法添加到仓库当中
$ git add 文件名
第三步,将该文件通过git commit方法,告诉Git,并把文件提交到仓库
$ git commit -m 说明信息
代码说明:-m后面输入的是本次提交的说明,就如同我们每次提交SVN时的“注释”一样,可以不写,但是建议书写。
git commit命令执行成功后会告诉我们,有1个文件被改动(我们新添加的index.html文件),并且插入了11行内容(index.html中有11行的内容)。
Git知识小结
HTML5学堂-利利:今天的内容就讲到这里吧,接下来我们整理一下思路。
- Git是一种分布式版本控制系统
- 其主要优势在于“不需要联网”、“安全性高”以及“强大的分支功能(这方面以后我们会介绍到)”
- 使用git config进行机器基本信息的配置
- 使用mkdir、cd、pwd等命令,找到需要创建成“版本仓库”的地址(路径)
- 使用init,将该目录定义成Git可以管理的仓库
- 使用add、commit命令,实现向仓库当中添加、提交文件
HTML5小编-利利 耗时7小时
- 2761: [JLOI2011]不重复数字(平衡树)
- 无图片字体icon
- 数据结构(三):栈与队列
- 3555: [Ctsc2014]企鹅QQ
- 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二
- 3097: Hash Killer I
- 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复
- 1684: [Usaco2005 Oct]Close Encounter
- 算法模板——Dinic最小费用最大流
- 算法模板——Dinic网络最大流 1
- SQL Server 使用全文索引进行页面搜索
- 2764: [JLOI2011]基因补全
- 1000: A+B Problem(NetWork Flow)
- 博弈论进阶之Multi-SG
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SpringBoot2 整合FreeMarker模板,完成页面静态化处理
- PHP多文件上传格式化
- NDK开发案例 | C/C++调用java层代码
- 深入理解 SecurityConfigurer 【源码篇】
- Swift 属性
- Swift 类和结构体
- 使用深度学习和OpenCV的早期火灾检测系统
- 【时序预测】一文梳理时间序列预测——ARMA模型
- 三分钟Kubernetes-环境搭建篇
- Linux分区页框分配器之水位
- 使用GPU训练模型
- Spring事务源码分析专题(一)JdbcTemplate使用及源码分析
- TensorFlow处理运动想象分类任务
- 使用kepler.gl可视化地理空间数据
- 聊聊 Python 代码覆盖率工具 - Coverage