git 命令行(一)-版本回退
1. 版本回退
在实际工作中,我们脑子里怎么可能记得一个几千行的文件每次都改了什么内容,不然要版本控制系统干什么。版本控制系统肯定有某个命令可以告诉我们历史记录,在Git中,我们用 git log
命令查看:
退出git log命令行是: q。
Git提供了一个命令 git reflog
用来记录你的每一次命令:
如果我们要实现回退, Git必须知道当前版本是哪个版本,在Git中,用 HEAD
表示当前版本,也就是最新的提交009befc...711741
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是 HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
现在,我们要把当前版本回退到上一个版本,就可以使用 git reset
命令:
我们也可以是使用 commit_id 来在不同版本之间回退。
使用 git commit命令将文件添加到本地仓库,要撤销文件修改,可以使用如下命令:
git reset --hard commit_id
2. 版本库(Repository)
工作区有一个隐藏目录.git
,这个不算工作区,而是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用 git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用 git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
2. 撤销修改
1. 在Git中,git checkout -- file
可以丢弃工作区的修改:
命令git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次 git commit
或 git add
时的状态。
git checkout -- file
命令中的 --
很重要,没有 --
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout
命令。
2. 如果我们修改了文件,还 git add
到暂存区了,庆幸的是,在commit
之前,你发现了这个问题。用git status
查看一下,修改只是添加到了暂存区,还没有提交:
Git同样告诉我们,用命令 git reset HEAD file(即撤销git add 命令修改的文件)
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。再用git status
查看一下,现在暂存区是干净的,工作区有修改:然后按照第一步的方法回退。总结如下:
转载于:https://www.cnblogs.com/xuzhudong/p/9052594.html
git 命令行(一)-版本回退相关推荐
- Git命令行 回退到指定历史版本
1.git 命令行查询版本号 查询历次提交记录,得到版本号 git log 比如,要回退到的版本号 为ef582da9e1dbcf34f939fdb0fa2db897ae4887b1 2.git 命令 ...
- Git——远程管理版本操作(Tortoise(小乌龟)图形化操作、git命令行操作)
一.Tortoise 图像化操作: 1.克隆项目(即从github仓库拉取项目文件): 2.暂存区: 添加到暂存区: (1)新建一个文件 (2)右键选择子选项 ->[添加](3)勾选为被控制文件 ...
- 【重要】使用Git命令行上传到GitHub上
[本人GitHub账号:] 用户名:chenhongshuang 密码:shuangshuang6300 邮箱:2452420371@qq.com 进入GitHub账号后 1·新建项目文件名称例dem ...
- Git教程之如何版本回退
一.前言 上一章节,我们已经学会了如何创建版本库,如何提交文件到版本库,如何查看最近提交文件的记录,那么如果现在我们想回退版本怎么操作呢? 二.步骤 ①现在继续对readme.txt文件进行修改,再增 ...
- macos安装git命令行_MAC OS git客户端安装及操作
1. 下载安装mac os 版本的git客户端及相关可视化软件 1.1 从git官网上下载匹配的git客户端.pkg格式的包,然后在系统偏好设置-> 安全性与隐私中打开系统默认禁止安装的这个程序 ...
- git命令行完全解读
BY 张建成(prettyEcho@github) 除非另行注明,页面上所有内容采用知识共享-署名(CC BY 2.5 AU)协议共享 原文地址deep.js , 欢迎 评论 和 star ?? 欢迎 ...
- Git命令行介绍和使用说明(持续更新)
Git命令行介绍和使用说明(持续更新) Git命令行介绍和使用说明(持续更新) 文档名称 Git命令行介绍和使用说明会 创建时间 2012/8/23 修改时间 2012/8/23 创建人 Baifx ...
- 如何用git命令行上传本地代码到github
如何用git命令行上传本地代码到github 2016年09月19日 16:10:36 阅读数:9337 注意:安装的前提条件是配置好git的相关环境或者安装好git.exe,此处不再重点提及 上传的 ...
- 关于使用 git 命令行来和“码云”账号上的项目互通过程的基础步骤
前提:已经有码云账号,电脑已经安装了git工具. (1)在码云账号上登陆自己的账号,创建一个新的项目. (2)在自己的本地磁盘下随便创建一个文件夹(例如起名为:mayun),用来存放从码云上拉下来的项 ...
- 如何使用git命令行上传项目到github
参考文献: 如何使用git命令行上传项目到github 感谢楼主分享!
最新文章
- 苏州之行的点滴感悟---活动中老师的言论以及火车上遇到的人
- python 跟踪算法
- python绘图subplots函数使用模板
- 论文笔记:DeepID2
- 2019建中台,2020拆中台,为什么很多公司中台战略宣告“失败”?
- 不带头结点链表,尾部插入法创建
- python中again函数怎么用_《“笨方法”学python 》 once again 20170729
- R语言——基础知识呕心沥血大汇总
- 关于网页数据导入excel问题
- 射频芯片ATE测试从入门到放弃之基本概念
- ENVI:如何进行遥感图像的分类?(支持向量机模型)
- DLL编写中extern “C”和__stdcall的作用
- 分布式数据库中间件对比总结 数据库(分库分表)中间件对比
- 自动化本科生考计算机研究生,请教关于自动化专业本科生报考研究生的问题?...
- linux限制进程带宽,再Linux系统中限制网络带宽使用的教程
- 【NOIP2016普及组】复赛——魔法阵
- 实现自定义大转盘抽奖
- 你每天应该吃多少水果?
- Java实现 LeetCode 373 查找和最小的K对数字
- 钱钟书是怎样做读书笔记的