【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 [版本快照]

 


 

posted @ 2021-01-04 17:33  Osea  阅读(203)  评论(0编辑  收藏  举报