前面提交了一个test1.txt文件,接下来看看这个文件接下来的命运。

一、继续修改并提交

  在test1.txt中修改后,

  git status  查看git的状态,

  

  会提示我们文件test1.txt被修改了,但还没有提交。但到底修改了什么呢?接着往下看,

  git diff test1.txt  查看刚刚修改的内容,

  

  会提示add a file,并且还知道添加了 i want some drink。既然文件被修改了,就需要重新添加并提交。

  执行 git add test1.txt,然后再 git status 看看git现在的状态

  

  提示修改了的test1.txt将要被提交,执行 git commit -m "i want some drink",再看git状态

  

  提示没有要提交的文件,bingo。

  就这样修改文件后,git add test1.txt 添加文件,然后git commit -m "note" 提交文件。

二、版本回退及恢复

  1、版本回退

  先用 git log 命令查看从近到远的所有版本,后面可加参数 --pretty=oneline

  

  显示现在有两个版本,前面的一长串是版本号,第一条有个标记 HEAD -> master 是指当前版本。

  现在想回退到上个版本,

    第一种: git reset --hard HEAD^  ,以此类推返回上上个版本就是 HEAD^^ 

    第二种: git reset --hard 31e6184 ,最后的版本号只要前几位就行了

  

  执行命令后提示当前版本是 31e6184,打开文件发现已经变成上个版本的内容。

  2、版本恢复

  当我们再想回到最新版本时,就必须知道最新版本的版本号,Git提供了一个命令 git reflog,看一看到每次的操作记录,最前面会有版本号

  

  现在再执行 git reset --hard c64de46 ,就回到当前版本啦。

  

  打开文件再看时,已经是最后修改后的内容了。

三、撤销修改

  1、把文件改乱了想撤销, git checkout -- test1.txt

  2、文件改乱了并已经执行了add,执行 git reset HEAD test1.txt  就回到上面那种状态,然后再执行 git checkout -- test1.txt

  3、文件改乱了且已经commit,就只能回退到上个版本了。注意:如果推送到远程服务器就没救了!

四、删除文件

   rm test1.txt ,执行完这个命令后,其实版本库的文件还存在,

  如果确定删除,则执行 git rm test1.txt ,然后执行 git commit -m "delete test1"

  如果发现删错了,则执行 git checkout -- test1.txt,相当于用版本库中的文件替换了工作区的文件

五、git对文件的基本操作就完了,但是到底怎么用到团队中呢?下面还有。

Git从零开始(二)的更多相关文章

  1. Git 笔记二-Git安装与初始配置

    git 笔记二-Git安装与初始配置 Git的安装 由于我日常生活和工作基本上都是在Windows上,因此此处只说windows上的安装.Windows上的安装和其他程序一样,只需要到http://g ...

  2. 版本控制git之二 分支 切换分支 创建分支 合并 删除

      版本控制git之二 分支   有人把 Git 的分支模型称为它的`‘必杀技特性’',也正因为这一特性,使得 Git 从众多版本控制系统中脱颖而出. 为何 Git 的分支模型如此出众呢? Git 处 ...

  3. Git从零开始怎么学?

    最近,公司项目代码版本库管理,全部从svn 迁移到Git 最近了解了一段时间 近期会把整个Git使用过程陆续分享 如何从零开始使用Git

  4. Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(二)

    一.前提: 完成前一篇的内容. 具体参考:Cocos2d-x3.x塔防游戏(保卫萝卜)从零开始(一)篇 二.本篇目标: l  说说关于cocos2dx手机分辨率适配 l  对前一篇完成的塔防游戏原型进 ...

  5. Git(二)Git几个区的关系与Git和GitHub的关联

    前言 前面只是大概的介绍了一点基础的东西,接下来会更加深入的去了解一下Git. 一.Git的工作区.暂存区和版本库之间的区别和联系 1)工作区 在PC中能看得到的创建的一个管理仓库的目录.比如目录下G ...

  6. 【Git学习二】深入了解git checkout命令

    检出命令(git checkout)是Git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区.检出命令的用法如下: 用法一:git checkout[-q][<commit& ...

  7. Git从零开始(三)

    一.远程仓库管理 1.将本地内容推送到远程库 先关联远程库,执行命令: git remote add origin https://github.com/Hollydan/gitstore.git ( ...

  8. Git从零开始(一)

    一.首先windows安装git客户端 官网下载地址:https://git-for-windows.github.io/,这里下载会很慢,我试了好几次都失败了. 百度网盘资源: https://pa ...

  9. Git(二)使用git管理文件版本(TortoiseGit )

    一.创建版本库 什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都 ...

随机推荐

  1. Linux下jdk&tomcat的安装

    unbantu: 1.下载相应版本的jdk及tomcat:sudo wget ${url} 2.解压: tar zxvf jdk-7u79-linux-x64.tar.gz​ tar zxvf apa ...

  2. 十分钟教你使用NoteExpress

    http://www.a-site.cn/article/761794.html 如果你正走在读研的路上,不管是什么专业,日常生活中都少不了读文献.读文献和读文献. 与其等到文献堆积如山,给阅读和使用 ...

  3. 【转】软件质量之道:SourceMonitor

    转:https://blog.csdn.net/feng_ma_niu/article/details/40594799 SourceMonitor是一个源代码衡量工具,由http://www.cam ...

  4. 详细解读大数据分析引擎Pig&PigLatin语句

    Pig 一.Pig的介绍: Pig由Yahoo开发,主要应用于数据分析,Twitter公司大量使用Pig处理海量数据,Pig之所以是数据分析引擎,是因为Pig相当于一个翻译器,将PigLatin语句翻 ...

  5. 一个有趣的异步时序逻辑电路设计实例 ——MFM调制模块设计笔记

    本文从本人的163博客搬迁至此. MFM是改进型频率调制的缩写,其本质是一种非归零码,是用于磁介质硬盘存储的一种调制方式.调制规则有两句话,即两个翻转条件: 1.为1的码元在每个码元的正中进行一次翻转 ...

  6. kettle学习笔记(五)——kettle输出步骤

    一.概述 数据库表: • 表输出 • 更新,删除,插入/更新 • 批量加载(mysql,oracle) • 数据同步 文件: • SQL 文件输出 • 文本文件输出 • XML 输出 • Excel ...

  7. flask 与 vue.js 2.0 实现 todo list

    实现了后端与前端分离,后端提供 RESTful api. 后端 flask 与前端 vue 的数据传输都是 json. 本文使用 vue.js 2.0 对前一个例子:flask, SQLAlchemy ...

  8. [LOJ#6066]. 「2017 山东一轮集训 Day3」第二题[二分+括号序列+hash]

    题意 题目链接 分析 首先二分,假设二分的答案为 \(mid\),然后考虑利用括号序列来表示树的形态. 点 \(u\) 的 \(k-\) 子树的括号序列表示实际上是刨去了 \(u\) 子树内若干个与 ...

  9. 牛客OI周赛4-提高组-C-战争[并查集]

    题意 一个长度为 \(n\) 的序列,每个权值互不相同,给出形如 \(l,r,p\) 的信息表示 \([l,r]\) 区间中最小的数是 \(p\) ,问第几个信息开始出现矛盾. \(n\leq 5 \ ...

  10. RabbitMQ基础教程之基本使用篇

    RabbitMQ基础教程之基本使用篇 最近因为工作原因使用到RabbitMQ,之前也接触过其他的mq消息中间件,从实际使用感觉来看,却不太一样,正好趁着周末,可以好好看一下RabbitMQ的相关知识点 ...