zoukankan      html  css  js  c++  java
  • ❤️❤️爆肝3万字整理小白快速入门分布式版本管理软件:Git,图文并茂(建议收藏)--已码一万字❤️❤️

    @

    什么是Git

    • Git是目前世界上最先进的分布式版本控制系统(没有之一)。
    • Git有什么特点?简单来说就是:高端大气上档次!

    SVN VS Git

    • Git是分布式的版本控制系统,而SVN是集中式的版本控制系统,下面画个图来讲解它们的区别:
      在这里插入图片描述

    什么是版本控制

    • 我们今天上班敲了一天代码,然后关机下班。明天来的时候,可能因为某个原因要修改代码。修改之后发现,怎么比之前的还差。于是又得修改,一直一直修改下去,最后不知道修改了多少次,到头来可能觉得还是最初的代码写的好,最直接的方法就是手动敲代码恢复到最初的代码
    • 这个过程实在是难受,于是Git就被广泛使用了。因为Git是版本控制系统,只要我们把代码交给了Git,我们就相当于拥有的后悔药,可以把代码恢复到任意的版本。Git还有一个特性就是分布式(这个接下来就会讲到),由于这个特性,SVN逐渐被Git取代了

    安装Git

    • Git官网下载地址:https://git-scm.com/
    • Windows版本的Git安装除了安装路径需要修改一下,其他的地方都可以默认,然后一直next就安装完成了。
    • 安装完之后,我们在Windows任意位置右键,如果出现下面红色框中的选项,就说明Git安装成功了。
      在这里插入图片描述
    • 右键空白处,如图显示刚安装成功
      在这里插入图片描述
    • 配置窗口字体
      在这里插入图片描述

    谁在操作?

    • 在代码的推送和拉取的时候,Git要知道你是谁,也就是能标识你身份的信息。
    • 这些信息就是用户名和邮箱

    设置全局身份信息,也就是对所有本地仓库有效。
    git config --global user.name = 用户名
    git config --global user.email = 邮箱

    设置本地仓库身份信息,也就是只对改本地仓库起效。
    git config user.name = 用户名
    git config user.email = 邮箱

    查看全局身份信息,查看本地仓库身份信息去掉–global即可。
    git config --global user.name
    git config --global user.email
    在这里插入图片描述
    一般设置全局身份信息

    Git本地仓库

    • 我们需要创建Git本地仓库,然后把代码交给Git管理,这样才能让Git控制我们的代码版本,我们才算拥有了后悔药。
    • 在Windows上,任意的Git命令都是在Git Bash Here中执行,我们通过git init命令来创建本地仓库。执行命令后会创建.git文件夹,该文件夹默认是隐藏的。不能手动对该文件夹做其他操作,否则会破坏本地仓库。
      在这里插入图片描述
    • 在Windows上,任意的Git命令都是在Git Bash Here中执行,我们通过git init命令来创建本地仓库。执行命令后会创建.git文件夹,该文件夹默认是隐藏的。不能手动对该文件夹做其他操作,否则会破坏本地仓库。
    • 如果你非要看隐藏文件在哪里,请看下标
      在这里插入图片描述
    • 查看--勾选隐藏项目,即可以显示隐藏的文件.git
      在这里插入图片描述
    • 虽然我们是安装Windows版本的Git,但是Git一开始是为合并Linux代码被诞生的,所以Git命令兼容Linux命令,
    • 我们右键可以看到Git Bash Here,点击它出现控制台,可以看成是精简版的Linux终端,可以执行Git命令,也可以执行Linux命令。

    本地仓库构造

    在这里插入图片描述

    • 了解了Git本地仓库构造,接下来我们就真正行动起来,让Git控制我们任意文件的版本
    • 这里只是以简单的.txt文件来讲解Git是如何控制版本的

    重点

    摘自廖雪峰Git教程

    • 所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。
    • 版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。
    • 图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
    • 不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
    • 因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

    如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。

    使用Windows的童鞋要特别注意:

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

    Git基本操作

    git add

    第一步:

    • pwd是打印所处的的目录路径
    $ pwd
    /d/Study
    

    第二步:

    • 在该目录中新建文件study.txt,任一输入内容
      在这里插入图片描述
      第三步:文件添加到暂存区

    • git add 文件名
      在这里插入图片描述
      好了,接下来我们就把工作区中的文件添加到暂存区中,添加的方式有多种,如下命令:

    • 添加单个文件到暂存区

    git add 文件名称
    
    • 添加多个文件到暂存区
    git add 文件名称 文件名称 ...
    
    • 添加该目录下所有文件到暂存区
    git add .
    

    第4步:查看文件状态

    git status
    
    • 文件名颜色变成了绿色,说明该文件已处于暂存区,也符合我们上面说的暂存区中所有的文件都会显示为绿色。
      在这里插入图片描述

    git commit

    • 虽然我们把文件添加到暂存区了,但是Git还不能真正管理我们的文件
    • 只有我们把文件提交到版本库,Git才算真正管理我们的文件
    • 因为我们每一次提交,都会产生一个版本号,我们就是通过版本号来任意切换不同的版本
      在这里插入图片描述
    • 简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。这时我们再输入git status命令,如下图,发现什么都没有了。说明工作区和暂存区没有要提交的文件了。
      在这里插入图片描述

    git diff

    git diff 顾名思义就是查看difference,中文意思就是不同,即然是要看不同,我们就要先修改文件

    • 修改文件内容为:day day up

    • 再使用git status 查看文件状态
      在这里插入图片描述

    • 说明文件被修改,但暂时没有提提交到版本

    • 要记住点:修改后就还要走两个步骤:

      • 先添加到暂存区
      • 再提交到版本库
    • 那我们查看两次提交文件的区别呢?或者说文件被修改哪些内容了,这时我们就用到git diff 文件名称命令。
      在这里插入图片描述

    • 画个图来回顾我们上面的操作在这里插入图片描述

    git log

    说个笑话,我们可能明天起床后,就忘记了昨天我们往版本库提交过多少次了。
    哎,别担心,Git就知道我们会出现这种情况,它很贴心,为我们准备了git log命令,该命令显示从最近到最远的提交日志。
    在这里插入图片描述
    如果嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:
    在这里插入图片描述
    温馨提示:

    • 我们看到的一大串类似c617e68cad9e378…的就是commit id(版本号),和SVN不一样,Git的commit id不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示,每个人的commit id肯定是不一样的。

    • 为什么commit id需要用这么一大串数字表示呢?因为Git是分布式的版本控制系统,后面我们还要研究多人在同一个版本库里工作,如果大家都用1,2,3……作为版本号,那肯定就冲突了。每提交一个新版本,实际上Git就会把它们自动串成一条时间线。
      知道了每一次提交的版本号之后,我们就可以使用时光穿梭机,在多个版本中任意切换。

    知道了每一次提交的版本号之后,我们就可以使用时光穿梭机,在多个版本中任意切换。

    首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交41ec51f8324d…(每个人提交的版本号肯定是不一样的),上一个版本就是HEAD,上上一个版本就是HEAD,当然往上100个版本写100个不现实,所以写成HEAD~100。

    git reset

    • 我们已经知道怎么查看提交日志,以及了解什么是版本号了。接下来就开始使用时光穿梭机。git reset命令就是版本回退的命令。
    • 在回退之前我们先看看当前Git.txt的内容,cat 文件名称命令是打印指定文件内容
    • cat 文件名
      在这里插入图片描述

    git reset --hard head^:回退到上一个版本
    在这里插入图片描述
    如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到893694563,群内会有不定期的分享测试资料。
    如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。

    好好学习,天天向上! 学习不刻苦,不如卖红薯!
  • 相关阅读:
    突破ASLR之理论篇
    安装cocoaPods
    iOS 文字渐变
    iOS_科大讯飞快速实现语音搜索功能Demo
    Button宽度自定义
    全局手势按钮(随意拖动,点击事件)
    文字广告轮播这个就够用了
    一些有趣的三方开源库
    SVN的简单使用和积累
    如何在手机上面安装iPA应用包
  • 原文地址:https://www.cnblogs.com/zzpython/p/15263303.html
Copyright © 2011-2022 走看看