Git学习笔记 第二章
文件相关操作
修改readme.txt文件,执行 git status 命令查看当前仓库状态
git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add ..." 更新要提交的内容)
(使用 "git checkout -- ..." 丢弃工作区的改动)
修改: redme.txt
未跟踪的文件:
(使用 "git add ..." 以包含要提交的内容)
redme.txt~
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
使用git diff查看修改了什么内容,即difference
jack@Aspire:~/git$ git diff
diff --git a/redme.txt b/redme.txt
index 394552f..4e50204 100644
--- a/redme.txt
+++ b/redme.txt
@@ -1 +1,2 @@
-This is my first Git test.
+This is my first Git file. //内容由test改为了file
然后执行
git add readme.txt
git comment -m "add something"
版本回退
*git log 命令查看历史记录
commit 2bf289cac7af933232575719f0a05548de2d92eb
Author: battleblock jackdirectcn@outlook.com
Date: Wed Sep 16 22:30:35 2015 +0800
git
commit aa458f20559aa148b72f28f61096d7efe54952d1
Author: battleblock jackdirectcn@outlook.com
Date: Mon Sep 14 21:18:58 2015 +0800
test
commit 7b68b6f797a38b7fe2af70307e22a6008dfdf7a5
Author: battleblock jackdirectcn@outlook.com
Date: Mon Sep 14 20:38:35 2015 +0800
*git log --pretty=oneline显示较少信息(commin id版本号)
jack@Aspire:~/git$ git log --pretty=oneline
2bf289cac7af933232575719f0a05548de2d92eb git
aa458f20559aa148b72f28f61096d7efe54952d1 test
7b68b6f797a38b7fe2af70307e22a6008dfdf7a5 write a readme file
回退HEAD 表示当前版本,上一个版本为HEAD^ 上100个版本为HEAD~100
git reset --hard HEAD^回退到上一个版本
jack@Aspire:~/git$ git reset --hard HEAD^
HEAD 现在位于 aa458f2 test
cat readme命令查看内容
返回到现在版本
git reset --hard 版本号
jack@Aspire:~/git$ git reset --hard 2bf289
HEAD 现在位于 2bf289c git
git reflog查看每一次命令
小结
HEARD指向当前版本,Git可以在历史版本间来回穿梭,命令为git reset --hard commit id
穿梭前用git log查看提交历史,确定回退到哪个版本
*重返未来,用git reflog查看命令历史
撤销修改
修改了文件,但还未用git add命令提交,可用git checkout -- readme.txt
readme.txt自修改后还没有被放到暂存区,撤销修改就回到原来的状态;
readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
修改了文件并用git add提交到到暂存区
可用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
git add readme.txt
git reset HEAD readme.txt
重置后撤出暂存区的变更:
M readme.txt
D redme.txt
小结
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
删除文件
添加一个新文件test.txt到Git并且提交
git add test.txt
git commit -m "add test.txt"
在维恩件管理器中删除该文件或用rm 命令删除
此时用git status命令查看当前状态
1.从版本库中删除该文件
git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
rm test.txt
2.恢复误删文件
git checkout -- test.txt
Git学习笔记 第二章的更多相关文章
- 《DOM Scripting》学习笔记-——第二章 js语法
<Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...
- The Road to learn React书籍学习笔记(第二章)
The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...
- [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的“HT”
[HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的"HT" 敲黑板!!! 创建HTML超链接 <a>链接文本(此处会有下划线,可以单击 ...
- GIT学习笔记——第一章
git之vim编辑器退出命令 # 学习笔记 张文军微博主页 张文军码云主页 张文军新浪云主页 张文军博客主页 ## 刚学习git,好多东西没接触过,进入vim后不知道如何出来了,网上找了很多都 ...
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
第二章:高层体系结构 容器 1 什么是容器? servelet没有main()方法.它们受控于另一个Java应用,这个Java应用称为容器(Container) Tomcat就是这样一个容器.Web服 ...
- c#高级编程第七版 学习笔记 第二章 核心c#
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...
- 《Python基础教程(第二版)》学习笔记 -> 第二章 列表和元组
本章将引入一个新的概念:数据结构. 数据结构是通过某种方式阻止在一起的数据元素的集合,这些数据元素可以是数字或者字符,设置可以是其他数据结构. Python中,最基本的数据结构是序列(Sequence ...
- Git学习笔记 --第一章
本系列学习笔记参考廖雪峰Git教程 安装Git Linux平台 Ubuntu/Debian命令:sudo apt-get install git 其他版本 Git官网下载源码,然后解压,依次输入:. ...
- Java 学习笔记 ------第二章 从JDK到IDE
本章学习目标: 了解与设定PATH 了解与指定CLASSPATH 了解与指定SOURCEPATH 使用package与import管理类别 初步认识JDK与IDE的对应关系 一.第一个Java程序 工 ...
随机推荐
- 软件工程实践_Task1
(1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 说起来,当初选择计算机专业的缘由,更多应该归因于兴趣.虽然对CS全然不知,但也一点都不妨碍对它的神奇感到向往.再 ...
- div放在li标签中,无法撑开li标签的问题
作为一个前端菜鸟,我又碰到问题了,今天把div放到li标签中,发现div并没有把li标签撑开,而是在li标签边界之外,具体情况如下图所示: 那么,怎样才能达到预期的效果(每个li中放置一个div标签, ...
- redis面试必问
1.项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 面试题剖析 为什么要用缓存? 用缓存,主要有两个用途:高性能.高并发. 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧 ...
- cmd应用基础教程
cmd是什么? 对于程序员而言,cmd命令提示符是windows操作系统下一个比较重要的工具.对于程序员而言,为了追求更高的效率而抛弃花俏的界面已然是一件很常见的行为,截止到目前的,全世界仍有大量的服 ...
- 从头到尾使用Geth的说明-3-geth参数说明和环境配置
1.参数说明 ETHEREUM选项: --config value TOML 配置文件 --datadir "/home/user4/.ethereum" 数据库和keystore ...
- Centos 6.5配置rsync+inotify实现文件实时同步
1.安装rsync(两台机器执行相同的步骤)yum install gcc yum install rsyncd xinetd -y因为rsync是由xinetd启动的,所以需要修改一个配置vim / ...
- oracle SQL 执行顺序
Oracle执行SQL查询语句的步骤 1.SQL正文放入共享池(shared pool)的库缓存(library cache). 2.检查是否有相同的SQL正文,没有就进行以下编译处理,否则跳过. 1 ...
- vue filters过滤器
vue filters过滤器 vue.js允许我们自定义过滤器,可被使用于一些常见的文本格式化,过滤器可以用在两个地方,双花括号插值和 v-bind表达式.最常见的就是双花括号插值. 比如如下代码:{ ...
- 理解 DocumentFragment
理解 DocumentFragment 含义:创建文档片段,它继承了Node的所有方法,对DOM操作性能非常好.创建文档片段 如下方法: var frag = document.createDocum ...
- [01] JSP的基本认识
1.什么是JSP JSP,全称JavaServer Pages,是由Sun Microsystems公司倡导和许多公司参与共同建立的一种使软件开发者可以响应客户端请求,而动态生成HTML.XML或其他 ...