• 【Git学习】——版本管理


    一、提交版本库

    1、向readme.txt文件中新增加一些内容,然后使用git status查看当前仓库的状态。

           新增内容:git is a distributed version control system.

                                  git is free software.

    该结果显示修改的文件还没有提交。

    2、如果想要知道修改了哪些内容,可以使用git diff查看

    从上面的信息可以看出"---"那行为修改前的内容,"+++"那行为修改后的内容,这样可以很清楚的知道修改的内容。

    3、将修改后的文件添加到版本库,然后查看状态

    提示可以提交修改的内容到版本库。

    4、提交修改的文件到版本库,然后查看状态。

    从输出信息可以看出目前没有要提交的内容,工作区是干净的。

    二、版本回退

             有时我们对文件进行多次修改提交到版本库后,如果想要查看以前的版本文件,可以使用git reset 命令回退到以前的版本。

    1、使用git log命令查看历史版本信息

    其中长串的字符数字是版本号,HEAD是当前版本,master是主分支。

    2、使用git reset --hard命令回退到之前的版本,上一个版本是HEAD^,上上一个是HEAD^^,如果版本太多可以用数字表示,如要回退到上10个版本可以使用HEAD~10表示。

    从输出信息可以看出已经回退到上一个版本了。

    3、从老版本回退到新版本,可以通过版本的id号进行还原,git relog会记录使用过的命令,通过该命令可以找到版本对应的id号,然后使用git reset --hard 进回退。

    git 的版本回退速度很快,因为Git内部有一个HEAD指针,指向当前版本,当回退版本的时候,Git只是把HEAD从指向"append GPL"改为指向"add distributed", 如下图所示。

    执行git reset --heard HEAD^命令之后:

    工作区和暂存区

    工作区:当前能看到的目录,如git_learn。

    版本库:工作区中有一个隐藏的目录.git。

    git版本库里存了很多东西,其中最为重要的是称为stage的暂存区,还有git创建的第一个master分支,以及指向master的HEAD指针。

    三、管理修改

             当我们修改工作区的文件后,必须先用git add命令将其保存到暂存区,才能使用git commit命令将其提交到版本库,如果直接提交到版本库,则不会通过。可以使用git diff HEAD 命令查看工作区和版本库中最新版本的区别。

    撤销修改

    1、当我们在对工作区中的内容进行修改后,可以使用git checkout --文件 命令丢弃工作区中修改的内容,

           a) 如果文件修改后没有用add命令添加到暂存区,那么撤销修改后将回到和版本库一样的状态。

           b) 如果文件修改后添加到了暂存区后又做了修改,那么撤销修改后将回退到添加到暂存区后的状态。

    2、可以使用git reset HEAD readme.txt命令将暂存区中的修改撤销掉,重新放回工作区。git reset命令既可以回退版本,也可以把暂存区中的修改退回工作区,当使用参数HEAD时表示最新的版本。

    删除文件

            在Git中,删除也是一种修改,我们可以直接在工作区中用rm命令删除文件。当你删除文件后,工作区和版本库就不一样了,git status可以显示哪些文件被删除了。

             现在有两个选择,一种是确实要从版本库中删除该文件,可以直接使用git rm删除,并且使用git commit进行提交

               另一种情况是误删了文件,需要从版本库中拷贝一份,可以使用git checkout --test.txt。

               git rm命令用于删除一个文件,如果文件已经提交到版本库了,那不用担心误删,但是恢复文件只能恢复到最近一次提交后的内容。

  • 相关阅读:
    【转载】algorithm、numeric、functional
    spring-boot项目中通过maven下载依赖 导入自己的jar包
    spring-boot项目 idea maven编译失败 解决办法
    SVM核函数功能和选择——可视化 附源代码
    乳腺癌数据集上SVM核函数功能和选择的研究报告
    Python编程实验一 决策树实现结果预测
    操作系统课程设计 设备驱动
    操作系统课程设计 内核模块
    操作系统课程设计 系统调用
    操作系统课程设计 编译Linux内核
  • 原文地址:https://www.cnblogs.com/lw77/p/13669832.html
Copyright © 2020-2023  润新知