本篇介绍Git的基本操作及命令,学习后本篇需要达到的效果:满足日常工作使用,对每个命令及其作用有一定的了解。文章通过模拟工作流程的方式,帮助读者更好的理解每个命令的使用场景和作用,但不会单独列出每个命令的功能及作用,建议读者边看动手尝试一下。

一、自己创建仓库操作文件,并提交到本地仓库

 创建新仓库

     创建、进入想作为Git仓库使用的文件夹目录,输入命令“git init”以创建新的 git 仓库,成功后文件夹出现一个名称为.git隐藏文件夹(需要显示隐藏文件夹才可以看到),如图:

在目录下新建文件“test.txt”并输入内容(当然是Holle World!啦),保存后关闭文件。

     添加文件到仓库

使用命令“git add test.txt”把新创建的test.txt添加到仓库,此时test.txt图片左下角,会出现一个蓝色的加号,证明已经添加成功,这步操作就是告诉Git,提交文件的时候带上test.txt,如果不加,提交文件的时候是不会有它的,add操作如图所示(没有提示就是最好的提示):

为了更直观的体现“git add”的作用,我创建了一个文档“testNoAdd.txt”,不执行“git add”操作,稍后提交的时候用来做对比。此时可使用命令“git status”查看两个文件的状态,如图所示:

此时test.txt的状态为“已暂存”,testNoAdd.txt无状态。

把文件提交到仓库

将文件添加到仓库后,下一步是将文件提交到仓库,使用命令“git commit”将文件提交到仓库中,而testNoAdd.txt没有进行“git add”操作,执行提交命令时就不会提交它,如图所示:ps:1个文件状态更改(test.txt状态修改为已提交,相应文件左下角图标也变成绿色对号),此时查看状态,testNoAdd.txt并没有被提交到仓库。

commit命令中 -m 后面输入的是本次提交的说明,可以输入任意内容,实际使用中,尽量输入有意义的说明,方便自己和别人查看。

至此,test.txt文件已经提交至本地仓库中,一个从创建新仓库到提交文件至本地仓库的流程已结束。

二、修改本地仓库中的文件,并提交到本地仓库

由于目前的本地仓库暂没有涉及到多人协作问题,故本地仓库的文件始终都是最新的,不需要更新,直接修改即可,流程和上一种流程介绍类似,下面对test.txt文件进行修改、提交的流程:

打开test.txt文件,随便添加或删除一些内容,保存后文档左下角状态图标变成如图所示

在文件经过修改后,可使用命令“git diff 文件名”查看文件修改的内容,此命令会将当前本间与本地库中最新版本的文档进行比较,列出更改的地方,如图所示(可看出文档添加了一行内容‘你好,世界!’):

提交到仓库的流程同上,先add再commit,如图所示(习惯性提交完成后使用git status查看当前状态):

此处留个疑问,当修改完文件test.txt(第一次修改),并将其add到缓存区后,再次修改test.txt文件(第二次修改),然后直接commit到本地仓库,那么commit到仓库中的文件,是第一次修改的还是第二次修改的呢?亲自动手试一试吧!

文件修改上传的流程,至此已结束,以上两种流程,已经可以基本满足本地日常工作使用。

三、版本回退

写到这个功能时候,突然想到了仙剑奇侠传(小时候玩的单机),它的存档系统,不正是一种版本管理系统么,曾经无数次迷失在迷宫中,一个读档回到迷宫门口重新开始(当然要先在迷宫门口存个档了)。同理,当我们日常工作中,发现修改的文件并不合适,需要换个思路重新修改时,很希望能够回到最近的正确的版本中,既然git仓库中记录了每次修改的版本,那么肯定可以回到你需要的那个存档:

首先我们来使用“git log (文件路径/文件名)”来查看当前仓库中的提交记录,可以在log后加上文件路径(如果是当前目录则不需要加)和文件名,表示只查看该文件的提交记录,如图所示:

现在,我们把test.txt回退到第一次提交的版本,先介绍一下版本回退的命令:git reset [--soft | --mixed | --hard] 和 git revert,二者区别稍后介绍,我们先用git reset --hard+commit id 来回退,输入命令行输入“git reset --hard 213c1624ef5038a”,其中commit id 并不需要完全输入,前几位即可,结果如图所示:

查看log显示:

查看test.txt文件,发现文件已回退至第一个版本的内容,回退成功。

在使用本地仓库,没有push到远程仓库的情况下,可能你add ,commit 以后发现有点问题,准备取消提交,此时使用命令:

git reset [--soft | --mixed | --hard]
     --mixed 会保留源码,只是将git commit和index 信息回退到了某个版本.
     --soft 保留源码,只回退到commit 信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.
     --hard 源码也会回退到某个版本,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码).

当文件已push至远程仓库,则使用git revert 命令,将在远程仓库使用部分的教程中详细介绍。

四、文件还原(撤销修改)

事实上这个功能用的不是特别多(废话..谁愿意把自己辛辛苦苦写的代码给还原掉..),当然,也不排除偶尔有脑袋抽风的时候 回归正题,当你发现你的改动不能提交或者一些其他的原因,需要撤销所有的改动,将文件还原到当前仓库中最新版本的时候,使用命令“git checkout -- <filename>”来还原。比如说我午休的时候不小心脸滚键盘,打出了下面一段奇怪的文字:

睡醒的时候惊讶于这是什么鬼的同时,默默地用“git checkout -- text.txt”还原了文档(当然,在这么简单、明显的错误下,用命令还原确实有点儿小题大做了...),结果如图所示:还是那句话:没有提示就是最好的提示,还原已成功。

注意:当你的改动已经添加到缓存区,或者是你新建的文件,那么此命令是无效的

最后友情提示一下:此功能慎用...修改的内容,还原后找不回来的...而且使用命令行还原的话,是直接执行操作,不会有确认提醒(有的界面操作工具有确认提醒)。

五、删除文件

当需要删除某些无用的文件时,使用命令“git rm”+文件名即可,为进行演示,我创建了“testForRM.txt”文件,并将其提交至本地仓库中,如图所示:

执行命令“git rm testForRM.txt”,删除文件后如图所示:

查看当前状态显示文件已被删除:

此时在本地将文件删除,如果想将版本库中的文件也删除,只需要commit当前本地环境到本地仓库即可;当然,如果是误删了本地文件,只需要checkout还原一下即可。

OK,本篇介绍了单机环境下的增删改查等一些日常工作使用的命令,希望对读者有所帮助,有疑问和建议可以在下方评论,下篇见~

Git学习笔记(4)----基本操作及命令(本地仓库篇)相关推荐

  1. 进厂手册:Git 学习笔记(详解命令)

    文章目录 git 对象 通过git对象进行文件的保存 git对象的缺点 树对象 构建树对象 提交对象 高层命令 工作区的文件状态 git reset hard 咋用以及用错了怎么恢复 git chec ...

  2. git学习笔记——Linux和Windows下git的基本操作

    git学习笔记--Linux和Windows下git的基本操作 github主页:https://github.com/Taot-chen 一.Linux环境 1.安装git sudo apt-get ...

  3. git学习笔记(全,附命令大全)

    git学习笔记(全) 注:本文参考自廖雪峰官网 下图来自Git Cheat Sheet侵删 git优点 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上. Git跟踪并管理的是修改 ...

  4. Git 学习笔记 —— 常用命令

    2019独角兽企业重金招聘Python工程师标准>>> =============================================================== ...

  5. Git 学习笔记:自定义Git(完)

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  6. Git学习笔记:标签管理以及GItHub

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  7. Git学习笔记:分支管理3

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  8. Git学习笔记:远程仓库

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

  9. Git学习笔记:修改

    前言 在补习python的时候主要参考的是廖雪峰的教程Python教程,在学习完后准备完成期末作业时,遇到了一个技术难题,需要初步掌握git,因此开始了git的学习. 本教程参考廖雪峰的Git教程 G ...

最新文章

  1. 【整合篇】Activiti业务与流程的整合
  2. java List的用法
  3. 机器学习导论(张志华):正定核性质
  4. 自定义checkbox样式
  5. eclipse-java-2019-12-R-win32-x86_64分享
  6. 孩子有心理问题不愿意做心理咨询,父母该怎么办?
  7. jQuery中 trigger() 使用心得
  8. 《Unity虚拟现实开发实战》——第1章,第1.1节虚拟现实对你来说意味着什么
  9. win32多线程(三) 死锁
  10. el-table点击单元格自动聚焦可编辑,且失去焦点即修改成功的实现方法
  11. 《深入浅出WPF》系列视频(特辑)——MVVM入门与提高(难度300+)
  12. RHCE7-NOTE(红帽工程师--题库详细笔记)
  13. ISO、快门、光圈、曝光
  14. MATLAB生成exe脱离matlab运行可执行程序
  15. KubeCon + CloudNativeCon + Open Source Summit 2019大会上海开幕看点不断!
  16. PS2 键盘在win10下开机过程 收发的数据
  17. 名编辑电子杂志大师教程 | 如何直接输出安卓apk格式?
  18. 机器学习应用实例|如何识别标题党?
  19. 【2020.11.4 洛谷团队赛 普及组】T1 U138644 小Biu的礼物
  20. Unity3D导航网格,矩阵旋转,欧拉旋转

热门文章

  1. 怎么用转转大师在线拆分PDF文件
  2. Linux线程互斥学习笔记--详细分析
  3. matlab中Cci,【每日一策】MATLAB量化交易策略之 CCI择时
  4. Linux重启Tomcat
  5. 【wordpress】Woocommerce设置配送方式及运费模板
  6. PP飞桨 AI studio Notebook基础操作学习
  7. 泡沫破灭那天下载_破灭泡沫-网站受欢迎程度的代价
  8. 2023年天猫618淘宝大赢家每日1猜:哪系列是NB夏日潮流必备?今日答案是什么?淘宝天猫618红包口令怎么领取?
  9. Comparable的用法
  10. 【读书】 - 无声告白