git之时光机穿梭
版本回退
-
HEAD
指向的版本就是当前版本,使用命令git reset --hard commit_id
可以在版本之间穿梭 -
可以通过
git log
查看提交历史,来确认回退到哪个版本 -
如果不小心关掉了
git bash
,可以通过git reflog
查看命令历史,以便确认要回到未来的哪个版本
工作区和暂存区
工作区(Working Directory)
-
电脑中可以看到的目录
版本库(Repository)
-
工作区中有一个隐藏的版本库--
.git
-
版本库中最重要的就是暂存区
(stage)
和Git
自动创建的第一个分支master
,以及指向master
的一个指针叫HEAD
-
当通过
git add
添加文件时,实际上是把文件暂存到了stage
中 -
通过
git commit
提交时,就是将暂存区的所有内容提交到当前分支-
因为创建
Git
版本库时,Git
自动创建了第一个分支master
,所以目前git commit
就是往master
分支上提交更改
-
管理修改
-
git
管理的是修改,而不是文件。即修改了某一行或某个单词。 -
如果修改了文件内容,而没有进行
git add
,则修改并没有保存到暂存区,那就不会加入到commit
撤销修改
git checkout -- <file>
-
丢弃工作区的更改
-
情况1:修改了工作区,但未提交到暂存区
-
情况2:提交到暂存区后又修改了工作区,但未再次提交到暂存区
-
git reset HEAD <file>
-
丢弃暂存区的提交
-
此时工作区的修改还存在,如果想丢弃,则继续使用
git checkout -- <file>
-
删除和撤销删除
-
当通过手动或命令
rm <file>
删除工作区文件后,如果真的想删除该文件,通过git rm <file> git commit -m "..."
删除版本库中的文件,不可恢复 -
而如果不小心误删,想恢复的话,通过命令
git checkout <file>
恢复 -
git checkout <file>
实际上就是让工作区的内容与版本库中的保持一致
原文地址:https://www.cnblogs.com/ashen1999/p/12559910.html
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计
- 因为这个原因,你的工作即将被取代!
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(72)-微信公众平台开发-消息处理
- 充斥着AI生成内容的世界,你能辨别虚拟与现实吗?
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(71)-微信公众平台开发-公众号管理
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(69)-微信公众平台开发-功能概述
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(68)-微信公众平台开发- 资源环境准备
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
- 一口价!3杂7bc.com16万易主
- Silverlight初级教程-动画
- WCF技术剖析之十:调用WCF服务的客户端应该如何进行异常处理
- [原创-总结]WCF技术剖析系列总结篇
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android自定义View实现圆环带数字百分比进度条
- Python按照list dict key进行排序过程解析
- Java并发编程的艺术(一)
- Python3.7 读取音频根据文件名生成脚本的代码
- python如何判断IP地址合法性
- 从*Application.java解读SpringBoot
- django实现后台显示媒体文件
- 服务发现与消费--Eureka与Ribbon的联手出击
- 自我加戏,在自闭的边缘尝试高可用的Eureka
- 视频直播系统源码,图片叠加
- SpringCloud初体验--Hello Eureka
- Android自定义View实现水平带数字百分比进度条
- AndResGuard编译速度优化
- Android自定义带拼音音调Textview
- Android仿音乐播放器带进度的播放暂停按钮