• Git使用详解


    Git简介

    Git发展史

    同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

    Linux 内核开源项目有着为数众多的参与者。 绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。 到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

    到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。 这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。 他们对新的系统制订了若干目标:

    • 速度

    • 简单的设计

    • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)

    • 完全分布式

    • 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

    自诞生于 2005 年以来,Git 日臻成熟完善,在高度易用的同时,仍然保留着初期设定的目标。 它的速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统。

    Git的两大特点

    • 版本控制:可以解决多人同时开发的代码问题,也可以解决找回历史代码的问题。

    • 分布式:Git是一个分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。

    安装与配置

    • 安装
    sudo apt-get install git  // ubuntu
    brew install git  // Mac
    

    查看是否安装Git只需要在命令行输入git命令,如果出现git的帮助信息则表示已经安装。
    uploading-image-918216.png


    创建第一个版本库

    1.首先创建需要使用Git管理代码的目录并定位到该目录下:

    mkdir git_test  // 创建目录
    
    cd git_test  // 进入该目录
    

    uploading-image-704141.png

    2.使用git init命令初始化仓库

    uploading-image-372728.png

    从上面的图中可以看到使用git init会帮我们创建一个空的仓库,并在当前目录下创建了一个.git的隐藏目录,这就是版本库目录。


    版本创建与回退

    版本创建

    创建第一个版本:

    1.在当前目录下创建一个code.txt文件,编辑内容如下:

    uploading-image-238609.png

    2.使用以下两条命令可以创建一个版本:

    git add code.txt
    
    git commit -m "版本说明信息"
    

    uploading-image-517806.png

    3.使用git log命令查看版本记录:

    uploading-image-467205.png

    PS: commit -m “这里面写的只是一些提示信息,并不是版本号”,使用git log命令查看版本记录时 commit 后面会显示当前版本的序列号;上图红色方框部分。

    创建第二个版本:

    1.首先在之前创建的code.txt添加新的内容:

    uploading-image-432158.png

    2.使用之前创建版本的两行命令将刚修改的code.txt保存为新的版本:

    git add code.txt
    
    git commit -m "版本2"
    

    uploading-image-934548.png

    3.使用git log命令可以看到两个版本记录:

    uploading-image-802572.png

    Git在创建每一个版本时会添加一个记录,而不是复制一份代码;
    新的版本依赖于前一个版本;

    版本回退

    1.若想回到前一个版本,可以使用如下命令:

    git reset --hard HEAD^
    

    其中HEAD表示当前最新版本,HEAD表示当前版本的前一个版本,HEAD^表示当前版本的前两个版本,也可以使用HEAD1表示当前版本的前一个版本,HEAD100表示当前版本的前100个版本。

    uploading-image-639915.png

    可以看到当前HEAD已经位于版本1

    uploading-image-736989.png

    执行命令后使用git log查看版本记录,发现现在只能看到版本1的记录

    2.假如我们现在又想回到版本2,这个时候怎么办?

    • 可以使用如些命令回到指定的版本:
    git reset --hard 版本号
    

    uploading-image-166624.png

    uploading-image-877417.png

    uploading-image-329110.png

    PS:版本号只需要复制一小段即可回退到指定的版本当中

    3.假如说上面的终端已经关闭过,然后重新打开终端;这时发现之前版本2的版本序列化已经看不到了,那么要怎么回到版本2呢?

    • 使用git reflog命令可以查看之前的操作记录,这里面会显示所有记录的版本号:

    uploading-image-257537.png

    工作区与暂存区

    工作区(working Directory)

    • 电脑中的目录,比如我们现在的git_test目录就是一个工作区。

    版本库(Repository)

    • 工作区有一个隐藏的.git目录,这个不是工作区,而是git的版本库;而这个版本库在使用init初始化时自动创建。

    • git的版本库里面存了很多东西,其中最重要的就是成为stage(或者叫index)的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

    • 因为我们创建git版本库时,git自动为我们创建了唯一一个master分支,所以现在git commit就是往master分支上提交更改。

    • 也可以简单理解为,需要提交的文件修改后通通放到暂存区,然后一次性提交暂存区的所有修改。

    uploading-image-517854.png

    前面讲了我们把文件往git版本库里添加的时候,是分两步执行的:

    • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

    • 第二步使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

    查看工作区状态

    • 在我们不确定当前工作区修改过哪些文件或是新创建了哪些文件时,可以使用git status命令查看工作区的状态。

    uploading-image-612686.png

    • 当我们在工作区创建新的文件或者目录时,git并不会跟踪记录状态;需要使用git add命令添加到暂存区后才会帮我们跟踪记录修改的状态。

    uploading-image-116351.png

    • 如果工作区的内容没有发生任何改变的话,此时暂存区是干净的。

    uploading-image-448831.png

  • 相关阅读:
    java--面向抽象编程
    java--面向接口编程
    一个网页的测试用例
    浏览器Notwork XHR被隐藏了
    在element-ui label中设置空格
    数组对象排序
    js动态替换和插入字符串
    vue-quill-editor回显时移除焦点
    vue中监听页面是否有回车键按下
    vue-quill-edito 字体倾斜加粗无效
  • 原文地址:https://www.cnblogs.com/xsh168/p/11677062.html
Copyright © 2020-2023  润新知