zoukankan      html  css  js  c++  java
  • 【Git】实用教程

    参考网站

         FishC

    参考视频(B站)

         Git GitHub GitLab使用教程

       【Git教程】《极客Python之Git实用教程》(小甲鱼)


     Git实用教程1:世界上最先进的分布式版本控制系统简介

      Git的功能:

    • 代码管理
    • 版本迭代
    • 方便多人合作

      Git的诞生主要是当年Linux开发时,众多人一起开发,不好管理,当时候的BitKeeper(当时候代码管理的一个版本控制系统),其商业公司(BitMover)商量合作进行代码管理。但是最终因有人想破解其BitKeeper,导致谈判决裂导致逼着Linus Torvalds自己用了十几天时间开发了Git。

    • 2005年4月3日:Linus 开始开发 Git
    • 2005年4月6日:Git 项目对外发布
    • 2005年4月7日:Git 实现作为自身的版本控制工具
    • 2005年4月18日:实现多分支合并
    • 2005年6月16日:Linux 内核 2.6.12 发布,Git 已经可以用于维护 Linux 核心源码
    • 2005年7月26日:Linus 功成身退,将 Git 的维护工作交给另一名 Git 的主要贡献者 Junio C Hamano

    以上就是诞生的原因了。


     

    Git实用教程2:安装Git

      一、安装:请看上面链接

      二、配置相应的  用户名 以及 e-mail

       


    Git实用教程3:理论基础

      SVN 作为一个集中式的版本管理系统,每次版本更新都是只改动一小部分,最后装订成册。

      

      但是与之相对的Git版本管理系统,改动就是先是整个复制一份,再把对应的位置改一下。

      

    工作区域(Working Directory)就是你平时存放项目代码的地方。

    暂存区域(Stage)用于临时存放你的改动,事实上它只是一个文件,保存即将提交的文件列表信息。

    Git 仓库(Repository)就是安全存放数据的位置,这里边有你提交的所有版本的数据。其中,HEAD 指向最新放入仓库的版本(这第三棵树,确切的说,应该是 Git 仓库中 HEAD 指向的版本)。

       

    Git 的工作流程一般是酱紫:

    1. 在工作目录中添加、修改文件;

    2. 将需要进行版本管理的文件放入暂存区域;

    3. 将暂存区域的文件提交到 Git 仓库。

    Git 管理的文件有三种状态:

    1. 已修改(modified)

    2. 已暂存(staged)

    3. 已提交(committed)

    实战测试

      1、新建一个大本营:桌面上创建 Git_Test     

      2、进入命令行模式

        cd    Git_Test
        git init

      3、观察其文件内的隐藏文件.git  ( Mac 需要 Command + shift  + ">" )

      

       4、在文件内新建一个 Readme.md 文件

    git add README.md
    git commit -m "add a README file"

    效果图:

       

    总结

      将工作目录的文件放到Git仓库只需要两步:

      1、git add “文件名”

      2、git commit -m "你干了啥"


    Git实用教程  《查看状态》

    主要命令:

    git status
    git reset HEAD

    实操演练:

    1、在工作目录下添加文件“LICENSE”:

      

    2、然后,查看当前状态,利用 git status 命令;

      

     解析:由于工作目录下的“文件”增加,以至于git 的状态下,发现有一个未被跟踪的文件,并提醒着用户,建议用"git add <file>" 把文件给加入到暂存区域内。

    3、添加到暂存区,并查看当前状态

    git add LICENSE
    git status

      

     解析:一旦添加到暂存区就会被跟踪,已经被跟踪的文件颜色变了(所以就被 绿了 ),

    但同时可以提醒你,可以用"git reset HEAD"来

    4、利用reset命令,再次观察其状态;

    git reset HEAD
    git status

      

      

     解析:就是撤回刚才的操作,把缓存区的内容清除,最后回到刚才的状态,LICENSE还是未被标识。

    5、如果直接 add 到暂存区,再直接commit后效果如下图:

    git add LICENSE
    git commit -m "add a LICENSE file"

     

    以上5个操作都是对于工作目录下,整一个文件添加的情况进行讨论的。

    以下是对文本内容上进行修改

    再对查看状态进行实操演练

    1、修改文本内容

      

    2、查看当前状态

    git status

      

     解析:

      1、提醒“LICENSE”文件已被修改,"modified"

      2、给出两条建议:

    git add <file>
    git checkout

      第一个建议是,把修改过后的 LICENSE 啥都不管往第二棵树(暂存区)放git add file

      第二个建议是,把之前修改前的LICENSE 恢复回来,即工作目录下的LICENSE可能会被修改。

    3、尝试使用checkout演示其效果

       所以说这个命令一定要慎重,慎重!!!

      

    4、尝试使用git add <file>观察其效果

    再观察其状态:发现又被绿了。说明这个修改也已经放到暂存区里。

     

    5、再次修改LICENSE内容,观察其状态。

      

     解析:

      一定需要区分开,这两个LICENSE是不一样的,前者是在暂存树上的LINCENSE的,即没有最后一行"add the second line",后者则在工作目录下,有最后一行的LICENSE。所以遇到这种情况说明有两个不同版本,通常都是根据工作目录版本为准,所以下一步是进行覆盖。

    6、覆盖暂存树上的LICENSE

      直接使用命令: git add LICENSE 即可

      

    7、将暂存树的LICENSE,commit到第三棵树(git 仓库)

      

    查看历史记录

    主要命令:

    git log

    具体效果:

      

    解析:

      校验码:唯一标识,通过刚才的内容进行hash之后的结果

      作者,邮箱:之前git 配置时的用户名以及邮箱

      时间

      时间顺序:从近到远

      还有commit时的提示词。


    Git实用教程 回到过去

    《回到过去》

    三棵树的情况

      

    Repository(仓库内的情况)

      

    当前三棵树,以及对应的内容和版本号  如下图:

      

    快照:即Git仓库中的版本号

    主要命令

    git reset HEAD~

    #返回到第N个之前的版本
    git reset HEAD~n

    #版本号显示
    git reflog 

    #回滚三部曲
    git reset --soft HEAD~
    git reset [--mixed] HEAD~
    git reset --hard HEAD~

    #回滚制定快照
    git reset [版本快照,即hash后的标识码,例如:bd2ab20]

    #回滚个别文件(不会改变HEAD指针的指向)
    git reset [版本快照] [文件名/路径]

    #往前滚就是指定快照进行reset
    git reset [版本快照]

    操作演练

    1、当执行完git reset HEAD~后的显示图如下

      

    reset命令回滚快照三部曲:

    • 1、移动HEAD的指向
      git reset --soft HEAD~

    • 2、将快照移动到暂存区域 (mixed,默认)
      git reset [--mixed] HEAD~

    • 3、将暂存区域还原工作目录
      git reset --hard HEAD~

    回滚制定快照
      git reset [版本快照,即hash后的标识码,例如:bd2ab20]

    回滚个别文件(不会改变HEAD指针的指向)

      git reset [版本快照] [文件名/路径]


    往前滚就是指定快照进行reset

      git reset [版本快照]


  • 相关阅读:
    super的使用
    Django--自定义 Command 命令
    Django models
    二柱子的编程 四则运算2
    阅读《梦断代码》计划
    随机数计算小学四则运算
    人月神话有感
    软件演化
    软件测试
    软件实现
  • 原文地址:https://www.cnblogs.com/Osea/p/14231095.html
Copyright © 2011-2022 走看看