你好,我是江潮

你有没有遇到过这种情况:

在开发项目的时候,我们会不断地去修改代码,但是有时候会遇到,想查看某一时间的代码这种情况,如果没有版本控制器,你可能需要不断地定时备份代码,但这样显然是很麻烦的,而且备份也不一定好用。

比如某个时间点并没有修改代码,那么备份就重复了;再比如虽然备份了代码,但你并不知道两个版本有什么区别。

在这种情况下,一些工程师尝试开发代码版本控制器系统;每次当你修改完代码想进行备份时,只需要输入简单的命令,版本控制系统便会帮你完成备份操作;

就这样两种截然不同的版本控制器诞生了!

  1. 中央版本控制系统

中央版本控制系统必须存在两个端,服务端和客户端,当进行代码备份时,客户端会向服务端发出请求,并将此次修改的内容发送到服务器当中去;服务端收到请求后,会将代码存储在服务器当中

同样当客户端想查看某一个版本的修改内容或者想恢复到某一个版本之时,客户端也会发送请求到服务端,服务在端接收到请求之后会做出相应的处理并返回给客户端。


从图中可以看到当提交代码时候,两个客户端都是把数据推送服务器当中去,拉取的时候代码也都是从服务器中获取,可以看出这是非常典型的 C/S 机制;张三和李四的交互都必须通过中央服务器,不能私下直接访问。

  1. 分布式版本控制系统

分布式版本控制器,主要是将备份的代码以及记录完全独立在本地存储,比如说上面提到,当你想将代码恢复到某一个版本的时候,本地版本控制器,不需要依赖网络便可以完成此操作,因为本地版本控制器拥有完整独立的控制系统。

从图中可以看出,张三和李四不仅仅可以向服务器推送代码,服务器也可以向客户端推送代码;并且张三和李四还可以互相推送代码,同样拉取代码也可以从任意一个节点中拉取,而不必从服务器中拉取。

所以从分布式版本控制系统本身的功能来说,它们是完全平等的,每一个系统都拥有全部的功能;但在实际的工作中我们为了更好地管理代码版本,会人为设置一些规则来限制代码推送,所以在图中的红色线条通常是不会使用的,另外服务端通常也不会去主动向客户端推送和拉取代码。

在了解了这些基本知识之后,我们今天的主角就该登场了。

GIT

其实目前主流的版本控制系统主要有Git和SVN,各自分别代表分布式版本控制系统和中央版本控制系统,两个工具各有优势。但谁让我们今天的主角是git呢。

安装Git

  1. Windows 安装
    在 Windows 系统中安装 Git 非常简单,只需要下载 Git 的安装包,然后安装引导点击安装即可:

Git下载地址:https://git-scm.com/download/win


下载完安装包之后,双击 EXE 安装包,可以看到如下图窗口界面,一直点击 Next 安装即可:


在安装完成之后,会在你的右键菜单栏中增加一个 Git 的选项,你可以在电脑桌面点击鼠标右键,会看到多出两个菜单,如下图所示:

当你点击 Git bash Here菜单之后,可以看到一个终端窗口,在终端里面输入命令 git —version,如果可以看到 git 的版本信息,则说明安装成功,如下图所示:

  1. mac系统

mac自带GIT所有,跳过!

Mac 安装的方法也非常简单,这里推荐大家使用最简单的方法安装,直接下载 pkg 的安装包安装即可:

Mac版本Git下载地址
https://gitscm.com/download/mac

下载下来之后可以看到一个 dmg 文件,双击打开 dmg 压缩文件,可以看到里面有一个 pgk 文件,如下图所示:

再次双击 pkg 文件,就可以进行安装,然后按照引导一直点击继续按钮就可以完成安装了,如下图所示:

安装完成之后,打开终端,在终端当中输入 git —version**** ,如果可以看到 Git 的版本号,说明已经成功安装,如下图所示:

  1. Linux 安装
    emmmmm。。。。。也是自带。

小试牛刀

git通常有两种搭建方式一是简单的本地搭建,二是直接克隆远程仓库,这里大家只是入门,就先在本地搭建仓库吧。

创建版本库

Windows比较简单暴力右键就行了,至于其他的都是直接命令行,新建个文件夹。

当然Windows也可以命令行。


命令行下进入该文件夹,开始初始化。

可以看到弹出已经成功初始化的语句!

下面在文件夹种选择显示隐藏文件之后,可以直接查看到我们的git配置文件!


进入之后可以看到配置文件。

这些目录可能我们会比较陌生,在后面的章节当中我们会略有涉及,因此,在这节当中先简单了解一下这些文件夹的作用:

  • HEAD:文件指示目前被检出的分支
  • branches:新版本已经废弃无须理会
  • description:用来显示对仓库的描述信息
  • config:文件包含项目特有的配置选项
  • info:目录包含一个全局性排除文件
  • hooks:目录包含客户端或服务端的钩子脚本
  • index:文件保存暂存区信息
  • objects:目录存储所有数据内容
  • refs:目录存储分支的提交对象的指针

配置基本信息

在建立完项目的版本库之后,后续对代码的管理操作都会要求要有一个身份,所以需要你在管理操作之前,配置一个昵称和邮箱,这个昵称和邮箱仅仅是在查看改动记录时候用的,和后面的鉴权没有关系。

配置昵称的命令参考如下:

git config --global user.name "你的昵称"

配置邮箱的命令参考如下:

git config --global user.email "你的邮箱"

具体代码:


three dogs@DESKTOP-C1UQ5RG MINGW64 ~/Desktop/新建文件夹 (master)
$  git config --global user.email "you@example.com"three dogs@DESKTOP-C1UQ5RG MINGW64 ~/Desktop/新建文件夹 (master)
$   git config --global user.name "Your Name"three dogs@DESKTOP-C1UQ5RG MINGW64 ~/Desktop/新建文件夹 (master)
$ git config user.name
Your Namethree dogs@DESKTOP-C1UQ5RG MINGW64 ~/Desktop/新建文件夹 (master)
$ git config user.email
you@example.comthree dogs@DESKTOP-C1UQ5RG MINGW64 ~/Desktop/新建文件夹 (master)

git的文件状态

因为版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,所以首先要知道文件当前在什么状态,不然可能会提交了现在还想提交的文件,或者要提交的文件没提交上。

而在GIT中文件一共有4种状态。

  • ·Untracked:未跟踪,,此文件在文件夹中;但并没有加入到git库,不参与版本控制.通过 git add状态变为staged
  • ·Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致.这种类型的文件有两种去处,如果它被"改,而变为Modified
    .如果使用git rm移出版本库,则成为Untracked文件
  • ·Modified:文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存
    staged状态,使用git checkout则丢弃修改过,返回到unmodify状态,这个 git
    checkout即从库中取出文件,覆盖当前修改
  • oStaged:暂存状态. 执行 git
    commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为_unmodify状态.执行git reset HEAD
    filename取消暂存,文件状态为Modified

注意:这个看不懂不要紧,以后用多了就理解了!

今天,我们只实践一个命令:git status 文件信息查看命令!

在我们的新建文件夹里输入这个命令,可以看到目前的文件状态是空,可以通过命令添加。

下面,我们直接右键新建一个txt文本,查看状态。

看这里,因为是直接创建的,所以(Untracked)没有被跟踪。

下面,我们执行git add . 这个命令将文件加入暂存区。接着查看状态。

可以看到,文件已经被放入暂存区。下面使用git commit -m 命令将文件上传到本地仓库。

再次查看文件状态,可以看到这里已经被清空了。

其实,这就是我们平时的使用顺序,添加文件,查看状态,上传,查看状态。

好了,本期的知识分享就到这里了,我们下期见。

中国最大同性交友网站--Gitee入门教程相关推荐

  1. 全球最大同性交友网站,已经10岁了!

    本文转自硅星人(ID:guixingren123) 作者:光谱 1999 年上线的 SourceForge,因为免费一度是世界上最受欢迎的开源软件代码托管网站.然而 Google 担心它一家独大,上线 ...

  2. 全球最大同性交友网站必备的五大神器!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来自:程序员Github 对于程序员来说,GitHub ...

  3. 全球最大“同性”交友网站GitHub或被微软收购,收购价可能高达 50 亿美元

    来源:综合businessinsider.venturebeat 编译:刘小芹 原文:http://www.sohu.com/a/233803905_473283 [新智元导读]据外媒Business ...

  4. 从全球最大同性交友网站抄了一份不一样的2048小游戏

    大家好,我是"前端点线面",一位新生代农民工,欢迎关注我获取最新前端知识和<前端百题斩>pdf版(包括JS基础篇.浏览器篇.网络篇共计50个章节,5万多字),此外有喜欢 ...

  5. 世界最大同性交友网站七夕大礼包————remote :Support for password authentication was removed on August 13,

    世界最大同性交友网站七夕大礼包----remote :Support for password authentication was removed on August 13, 原创文章,转载注明出处 ...

  6. 玩转全球最大同性交友网站--- 开源社区GitHub

    1. 你是否有过这样的需求? 刚接触github,被一堆菜单选项搞得头大, 不知道怎么玩 想做一个网站,发布到公网, 让所有的人都可以访问到 希望全面知晓github一个开源项目的结构,也能像其他大神 ...

  7. 全球第2大同性交友网站曝光,2022程序员现状

    全球第二大同性社交网站 提到全球最大的同性社交网站,大家马上想到Github. Github是技术人的聚集地,因为程序员以男人居多,所以被网友戏称为全球最大的同性社交网站. 还有一个网站,它的世界编程 ...

  8. 使用uniapp开发社区交友网站的项目教程

    uniapp社区交友开发前端模块开发 源码可以提供下载,详情访问末尾码云地址 环境搭建和创建项目 开发环境搭建 使用HubilderX 安装对应插件 创建uniapp项目 创建项目(名称:社区交友) ...

  9. 服务器网站搭建入门教程

    之前简单谈了一下服务器,感觉不去实践,总差点东西,那么这次就来从零开始学习如何玩服务器,由于本人也是新手,会逐步完善的,如果有什么错误,还请大佬们斧正.为了更好的入门,就利用宝塔面板这个工具,这样通过 ...

最新文章

  1. JSTL+EL表达式方法获取Oracle的Clob字段内容
  2. ipsec 网络安全协议
  3. 传统网站性能优化的三种手段
  4. 机房配电柜、配电箱在安装时应该注意哪些“禁忌”?
  5. Android的圆角按钮和按钮颜色
  6. 中国电线电缆行业发展形势与投资规模预测报告2022版
  7. winform的UI设计关键属性汇总
  8. 解决将Ubuntu下导出的requirements.txt到Centos服务器上面出现pkg-resource的版本为0.0.0...
  9. python max((1、2、3)*2)_Python functional.max_pool2d方法代码示例
  10. Netty工作笔记0049---阶段内容梳理
  11. [ZZ].NET自动探索式测试工具——Pex
  12. 【Oracle】恢复重做日志组
  13. linux CP命令覆盖不提示方法
  14. skywalking 6.1 简明指南
  15. 人工势场法matlab讲解,传统人工势场法(matlab)
  16. 毕业论文格式系列1 Word 图片交叉引用其题注
  17. 一个北大毕业生决定去送外卖
  18. 设置LINUX启动时的液晶屏参数
  19. 【附源码】计算机毕业设计java智慧停车系统设计与实现
  20. js数据结构- 双向链表

热门文章

  1. linux打开网络摄像头失败,Opencv没有检测到linux上的firewire网络摄像头
  2. python entry 文本框只能输入数字 限定数字
  3. Sql Server2008安装图解
  4. JavaScript中数据在内存中的存储方式
  5. Planet-在Word里添加格式美丽的代码
  6. RabbitMQ初步到精通-第四章-RabbitMQ工作模式-Routing
  7. python成三棋源代码
  8. 能量守恒(能量是怎么来的)
  9. java爬虫知识盲区整理
  10. 网站建设后的seo优化工作将如何展开?