一、初识Git

Git是一套优秀的分布式版本控制系统(区别于SVN和CVS,这两者是集中式版本控制系统)。
分布式和集中式版本控制系统的区别:
1)集中式版本控制系统:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。依赖于联网环境,受网络带宽速度的限制。

2)分布式版本控制系统:没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

二、Git的安装

最早Git是在Linux上开发的,很长一段时间内,Git 也只能在 Linux 和 Unix 系统上跑。不过,慢慢地有人把它移植到了 Windows 上。现在,Git 可以在 Linux、Unix、Mac 和 Windows 这几大平台上正常运行了。
Windows 下安装 Git(安装包下载路径:https://git-scm.com/downloads),使用默认选项下一步进行安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,出现如下界面,则说明安装成功。

安装完成后,还需要最后一步设置,在命令行输入:

$ git config --global user.name "Your Name"
$ git config --global user.email email@example.com

因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email 地址。
注意 git config 命令的—global 参数,用了这个参数,表示你这台机器上所有的 Git 仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和 Email 地址。

三、版本库创建

版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
创建版本库步骤:
1)选择一个合适的地方,创建一个空目录作为Git的仓库(mkdir:创建目录   pwd:查看全路径)
注意:如果使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
2)通过 git init 命令把这个目录变成 Git 可以管理的仓库
创建完成后,目录下会出现一个.git目录

3)提交文件到 Git,使用 git add 和 git commit 命令添加和提交文件(可以多次 add 文件,commit 可一次提交多个文件)

git commit 命令执行成功后会告诉你,2 file changed:2个文件被改动(新添加的 testfile1.txt 和 testfile2.txt 文件);3 insertions:插入了三行内容(两个文件共有三行内容)。其中 -m 参数是提交的备注说明信息。

使用Windows的童鞋要特别注意:
千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可。

四、TortoiseGit 管理工具

OVER,以上是入门学习的敲门砖,有没有发现,用命令行啥的,果然学习成本太高,而我们关键只是要将 Git 用起来,服务于我们的版本管理,那么接下来,就是喜闻乐见的图形化界面工具。
TortoiseGit 官网下载地址:https://download.tortoisegit.org/tgit/,与 TortoiseSVN 一脉相承的产品,换了个马甲,但还是一样的味道。
1)安装 TortoiseGit,部分步骤说明,其他一路默认即可。(先安装软件,再安装语言包)

2)安装完成后,右键“TortoiseGit –> Settings”,修改语言为中文。设置远程仓库地址,项目根目录右键“Tortoise Git->Settings”打开界面,即可配置。

3)从 Git 上下载项目,搜索到项目“Clone or download”,右键选择“Git 克隆”,将项目下载到本地。

4)右键 Git 项目目录,即可查看日志、提交、推送等操作,特别需要注意的一点,Git Commit 只是提交到了本地仓库,并没有到远程 Git 仓库中(切记)

5)保持本地和远程同步,右键“Git Sync”功能,选择“Push”将本地仓库提交的内容推送到远程仓库(相对的,Pull 则是从远程更新到本地仓库),即可

参考网址:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

信步漫谈之Git—环境搭建及入门的更多相关文章

  1. Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通

    原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...

  2. Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例【附详细代码】

    http://blog.csdn.net/xiefu5hh/article/details/51707529 Spark+ECLIPSE+JAVA+MAVEN windows开发环境搭建及入门实例[附 ...

  3. (十八)整合Nacos组件,环境搭建和入门案例详解

    整合Nacos组件,环境搭建和入门案例详解 1.Nacos基础简介 1.1 关键特性 1.2 专业术语解释 1.3 Nacos生态圈 2.SpringBoot整合Nacos 2.1 新建配置 2.2 ...

  4. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  5. Mybatis学习笔记之一(环境搭建和入门案例介绍)

    一.Mybatis概述 1.1 Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了go ...

  6. 04 Mybatis 框架的环境搭建及入门案例

    1.搭建 Mybatis 开发环境 mybatis的环境搭建 第一步:创建maven工程并导入坐标 第二步:创建实体类和dao的接口 第三步:创建Mybatis的主配置文件 SqlMapConifg. ...

  7. 0021SpringMVC环境搭建及入门程序编写

    环境搭建: 1.创建项目 创建maven项目,勾选上Create from archetype,然后选中webapp再点击下一步,如下图: 解决项目创建过慢问题: 在创建maven项目过程中加入一组键 ...

  8. mybatis学习:mybatis的环境搭建与入门

    一.mybatis的概述: mybatis是一个持久层框架,用java编写 它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接登繁杂过程 它使用了ORM思想 ...

  9. 1.golang的环境搭建及入门

    安装包下载 下载链接:https://dl.google.com/go/go1.12.3.windows-amd64.msi 环境搭建 安装完成之后,找一个来存放go语言文件的文件夹,我这里选的是G: ...

随机推荐

  1. angular.isObject()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. (84)Wangdao.com第十八天_JavaScript Promise 对象

    Promise 对象 是 JavaScript 的异步操作解决方案,为异步操作提供统一接口. 目前 JavaScript 原生支持 Promise 对象 它起到代理作用(proxy),充当异步操作与回 ...

  3. vue_eHungry 饿了么

    eHungry 仿饿了么 git 操作 git checkout -b dev        // 创建新分支 dev git push origin dev        // 代码推送到 dev ...

  4. Prometheus 和 Grafana 安装部署

    Prometheus 是一套开源的系统监控报警框架.Prometheus 作为生态圈 Cloud Native Computing Foundation(简称:CNCF)中的重要一员,其活跃度仅次于 ...

  5. larave异步多图片上传的实现和注意事项及$file的对象函数

    要使用多图片上传,首先要在input添加multipart,同时注意name的参数要加[],不然,不算是数组.具体如下,注意绿色地方.如果是单张图片,把[]去掉,不要multiple; <inp ...

  6. 我了解到的新知识之----如何使用Python获取最新外汇汇率信息

    这个需求本来是来源于公司同事工作中需求,用户需要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据.但是没能研究出来. 我就开始在网络上找关于使用python来抓取当天汇率的案例分 ...

  7. Python自动化培训第一周学习总结

    Python自动化培训第一周学习结束,看视频复习,把作业完成了. 总体来说,开卷有益. 首先,工具真是好东西,能够极大提升效率,也是人区别于动物所在.想起前任大领导对工具的不屑,本质也是对效率的不屑, ...

  8. Python004-数据处理示例:以某个数据(字段)为基准从数据中获取不同的字段行数

    数据源样式如下所示: 需求: 读取文本,以第一列为基准参考系,每个基准仅输出满足需要条数的数据:不满足,全部输出. 比如,基准为 6236683970000018780,输出条数要求为 5.若文本中含 ...

  9. model中的自动验证 $_validate $_auto

    普通模式: <?php class UserModel extends RelationModel{ /**自动验证**/ protected $_validate = array( /**ar ...

  10. rpm和yum模拟安装

    在更新安装包之前,我们可能会想做一个测试运行,换句话说,模拟而不是实际安装更新的包,以确定在安装之前是否有任何需要处理的问题. 以测试更新openssh2为例: yum update openssh2 ...