• [工具] Git版本管理(一)(基本操作)


    一、版本控制的发展

    1.用文件来做版本控制

    我们在写论文、做方案等的时候,一般都会同时在文件夹中存在很多版本的文件。

    例如:

    这种方式很常用,在很多领域都是用这种方式来进行版本控制的。

    2.本地版本控制

    实用一个本地软件,对所有的文件版本做管理,只提供给我们看到一个版本的文件。

    然后可以通过命令等方式来切换版本。

    3.集中式版本控制

    代表:SVN

    实用一个服务器来进行版本控制,充当中心仓库。所有的开发者在自己电脑上进行开发,并提交给中心仓库。

    缺点:当断网或服务器宕机的时候,无法提交。

    4.分布式版本控制

    代表:git

    结构和SVN很像,不同的是除了在服务器上维护所有的版本,还在用户的本地计算机也维护一套所有的版本。

    这样,用户可以在自己的本地进行版本控制,然后在合适的时机同步给中心服务器即可。

    二、安装git软件

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

    windows上安装git软件,只需一直下一步即可。

    在Linux上(CentOS)安装git,只需使用命令:

    yum install git -y

    Windows下安装完毕后,点击鼠标右键:

    只要看到Git GUI Here 以及Git Bash Here就说明git安装好了。

    三、初次使用git

    1.使用流程

    1)首先创建工作目录

    我们首先要创建一个工作目录,例如D盘下的leo目录。

    2)进入创建好的目录

    进入leo目录。

    3)右键打开Git Bash

    在leo目录中,右键点击Git Bash,打开git命令窗口。

    4)初始化git

    在git bash中执行命令:

    git init

    执行完毕后,会在当前目录(即D:leo)中生成一个隐藏的文件夹:

    这个文件夹中就是git进行版本控制所需的所有文件,我们不要轻易去改动它。

    5)配置个人信息

    配置个人信息,主要是邮箱和用户名。这些信息主要是用在生成版本的时候,需要记录生成版本用户的信息。

    如果没有配置个人信息,则执行commit命令时可能会报错。(一般是在首次安装git工具的时候配置一次即可)

    执行命令:

    git config --global user.email "leo4774177@gmail.com"
    git config --global user.name "leokale"

    6)查看管理目录下文件状态

    执行以下命令:

    git status

    使用该命令,可以查看管理目录(D:leo)下所有文件的管理信息。

    例如我们新添加两个文件:

    touch leo.py
    touch README.txt

    然后,再执行git status查看文件状态:

    我们可以看到,新添加的两个文件都是红色的,这是因为这两个文件被git扫描到了,但是发现并没管理起来,所以显示红色。

    7)将新文件管理起来

    使用以下命令将未被管理的文件纳入管理:

    git add leo.py  # 将leo.py纳入管理
    git add README.txt  # 将README.txt纳入管理

    或者:

    git add .  # 表示将所有未管理的文件纳入管理

    此时再使用git status查询状态:

    我们可以看到README.txt和leo.py文件都变为绿色,说明被git管理起来了。

    8)修改文件(变红)

    当文件被管理起来后(绿色),我们对其进行修改,git会自动检测到文件被修改,并将其变为红色:

    9)撤销修改

    在这种被修改的情况下,可以使用以下命令,让其回到修改之前的状态:

    git checkout test.txt

    10)生成版本(提交)

    当我们将需要管理的文件都纳入管理后(需要的都变绿),则可以生成一个版本。

    使用以下命令:

    git commit -m "version1.0"

    commit表示提交,即生成一个版本,-m表示该版本的说明。

    (注意,在使用git commit之前,一定要配置个人信息)

    提交完毕后,使用以下命令查看:

    git log

    我们可以看到刚才生成的版本信息,其中包括版本的ID,作者(邮箱),时间以及版本信息。

    2.git简单使用总结

    在第三节中,简单使用了Git进行版本控制,总结如下:

    1)进入要管理的文件夹

    2)执行初始化命令

    git init

    3)管理目录下的文件状态

    git status

    4)管理指定文件

    git add 文件名
    git add .

    5)撤销修改

    git checkout 文件名

    6)个人信息配置

    git config --global user.email "leo4774177@gmail.com"
    git config --global user.name "leokale"

    7)生成版本

    git commit -m "Version1.0"

    8)查看版本记录

    git log

    五、Git的三大区域

    从上图中我们可以看到,Git中主要分为3大区域:

    工作区:就是我们的工作目录,里面包含已经被管理起来的文件和未被管理起来的文件(例如新增的文件,刚被修改后的已管文件)。

    暂存区:通过git add命令,可以将工作区中未被管理的文件(红色文件)放到暂存区。暂存区是工作区和版本库之间的一个缓冲带,在生成版本之前,给用户做思考决定用的。

    版本库:用于存放以生成的版本。

    六、回滚

    1.回滚过程

    当我们开发了N多功能,例如html页面(Version1.0版本):

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Index</title>
    </head>
    <body>
        <ul>
            <li>欧美</li>
            <li>日韩</li>
            <li>港台</li>
        </ul>
    </body>
    </html>

    当我们加上"直播"和"约饭"功能后,版本信息变为:

    此时,html变为:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Index</title>
    </head>
    <body>
        <ul>
            <li>欧美</li>
            <li>日韩</li>
            <li>港台</li>
            <li>直播</li>
            <li>约饭</li>
        </ul>
    </body>
    </html>

    页面变为:

    假设,站点遇到检查,要求下线"约饭"功能,则可以使用回滚:

    git reset --hard 3f1ded74ecb60d700b1991e4341788c5fadd0729

    回滚到"直播"功能版本,后面的ID就是提交"直播"功能版本的ID。

    此时,页面变为:

    如果此时,通过一些手段,又可以再次上线"约饭"功能,只不过需要将"约饭"改为"约":

    那我们如何从"直播"功能再回滚到"约饭"版本:

    当我们使用git log 查询版本,结果没有"约饭"版本:

    所以,此时我们应该是用另外一个命令:

    这样,就可以看到"约饭"功能的ID为"6db4bfa"。使用git reset回滚:

    git reset --hard 6db4bfa

    页面:

    可以看到,版本已经回滚到"约饭"版本。

    然后我们修改"约饭"为"约",并在此提交:

    这样,我们再看页面:

    2.回滚总结

    1)查看版本信息

    git log

    2)回滚到之前的版本

    git reset --hard 版本号

    3)回滚到之后的版本

    git reflog
    git reset --hard 版本号

    七、各区域切换

    解释:

    1)已控制文件被修改后,会变更为modified(红色)状态,这是git自动检测的。

    2)新添加文件是new file状态(红色),也是git自动检测到的。

    3)modified状态(红色)文件经过git add,放入暂存区(绿色)。

    4)暂存区(绿色)文件经过git commit,生成版本。

    5)已生成的版本通过git reset --soft 版本ID,可以回到暂存区。

    6)已生成的版本通过git reset --mix 版本ID,可以回到modified状态和new file状态(提交前哪些文件被修改、新增,则哪些文件回到这些状态)。

    7)已生成的版本通过git reset --hard 版本ID,可以回到工作区已管理的状态(最常用的reset)。

    8)通过git add到暂存区的文件,如果想撤销,让其回到modify的状态,可以使用git reset HEAD 文件名。

    9)已管理文件修改后变为modified状态,如果想撤销修改,则使用git checkout 文件名。

  • 相关阅读:
    Practical .NET2 and C#2 翻译样章
    Resume
    Double Dispatch And Visitor Pattern
    Separate Contract from Implementation
    Kerberos简介
    责任分离的思想 oo dp orm aop
    Resources on Debugging/Tracing WPF
    沿着“重用”我们一路走来——SA、OO(DP)、Component、SOA、AOP
    Enterprise Test Driven Develop
    How does ElementName Binding work – Part 2 BindingExpression
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/12114851.html
Copyright © 2020-2023  润新知