文章目录

  • 1、撤消操作:`git commit --amend`
    • 实例详解:
  • 2、取消暂存的文件:`git reset`
  • 3、撤消对文件的修改:`git checkout`

超详细 Git 图文版小白教程(持续更新)

1、撤消操作:git commit --amend

在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令来重新提交:
git commit --amend

这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令), 那么快照会保持不变,而你所修改的只是提交信息。

文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。

例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:

git commit -m 'initial commit'
git add forgotten_file
git commit --amend

最终你只会有一个提交——第二次提交将代替第一次提交的结果。

当你在修补最后的提交时,并不是通过用改进后从v的提交 原位替换 掉旧有提交的方式来修复的,理解这一点非常重要。从效果上来说,就像是旧有的提交从未存在过一样,它并不会出现在仓库的历史中。

修补提交最明显的价值是可以稍微改进你最后的提交,而不会让“啊,忘了添加一个文件”或者 “小修补,修正笔误”这种提交信息弄乱你的仓库历史。

实例详解:

clone一个仓库:

如图:
修改two.txttest.txt:



查看状态:

two.txt添加到暂存区(test.txt忘记添加了):

提交:

查看最近一条提交记录:

提交完毕后习惯性查看状态,会发现test.txt忘记提交了:

test.txt添加到暂存区:

--amend修改提交:

Git(4)-- 如何退出 git log 和 git commit 状态

查看状态,全部提交完毕!

查看最近两条提交记录,发现上次的提交记录不见了,
git commit --amend的提交代替了第一次提交的结果:

2、取消暂存的文件:git reset

接下来的两个小节演示如何操作暂存区和工作目录中已修改的文件。 这些命令在修改文件状态的同时,也会提示如何撤消操作。 例如,你已经修改了两个文件并且想要将它们作为两次独立的修改提交, 但是却意外地输入 git add * 暂存了它们两个。如何只取消暂存两个中的一个呢? git status 命令提示了你:

新建one.txt,修改two.txt:


取消暂存新建的文件one.txt:

one.txt 文件已经是修改未暂存的状态了。

如果取消暂存的是修改的文件two.txt呢?如下:


git reset 确实是个危险的命令,如果加上了 --hard 选项则更是如此。 然而在上述场景中,工作目录中的文件尚未修改,因此相对安全一些。

3、撤消对文件的修改:git checkout

何方便地撤消修改——将它还原成上次提交时的样子(或者刚克隆完的样子,或者刚把它放入工作目录时的样子)?

接2、,现在撤销对two.txt 的修改:


可以看到新添加的“啊哈哈”已经被撤销了!

请务必记得 git checkout – 是一个危险的命令。 你对那个文件在本地的任何修改都会消失——Git 会用最近提交的版本覆盖掉它。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

如果你仍然想保留对那个文件做出的修改,但是现在仍然需要撤消,我们将会在 Git 分支 介绍保存进度与分支,这通常是更好的做法。

记住,在 Git 中任何 已提交 的东西几乎总是可以恢复的。 甚至那些被删除的分支中的提交或使用 --amend 选项覆盖的提交也可以恢复。 然而,任何你未提交的东西丢失后很可能再也找不到了。

Git(8)-- 撤消操作(git commit --amend、git reset 和 git checkout 命令详解)相关推荐

  1. git checkout 命令详解—— Git 学习笔记 16

    git checkout 命令详解 概览 git checkout 这条命令的常用格式如下: 用法一 git checkout [<commit>] [--] <paths> ...

  2. git checkout 命令详解

    转自:http://www.cnblogs.com/hutaoer/archive/2013/05/07/git_checkout.html?utm_source=tuicool&utm_me ...

  3. Git恢复之前版本的两种方法reset、revert(图文详解)

    2019/7/27 修改更新 一.问题描述 在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,本文总结了两种解决方法:回 ...

  4. Git 基础 - 撤消操作

    Git 基础 - 撤消操作 撤消操作 取消暂存的文件 撤消对文件的修改 撤消操作 在任何一个阶段,你都有可能想要撤消某些操作. 这里,我们将会学习几个撤消你所做修改的基本工具. 注意,有些撤消操作是不 ...

  5. git commit 命令详解

    文章目录 前言 1. git commit 介绍 2. git commit 使用 3. git commit -m 4. git commit -am 5. git commit --amend 6 ...

  6. git commit命令详解

    按照git的步骤,要提交一个新的文件,或者一个修改过的文件分3步 第1步:将文件放入版本库的目录(貌似说的是废话) 第2步:用 git add 文件名(最好是全英文,尤其是在windows下) 第2. ...

  7. git reset 命令详解(一)—— Git 学习笔记 07

    git reset 命令详解(一) 简而言之,git reset 命令是用来将当前 branch 重置到另外一个 commit 的,这个动作可能同时影响到 index 以及 work director ...

  8. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

  9. git config设置用户名_一个神奇的工具,实现多人协作,git常用命令详解

    git是一款开源的分布式版本控制工具,在世界上所有分布式版本控制工具中,git是最快.最简单.最流行的. git的作者是Linux之父:Linus Benedict Torvalds,当初开发git仅 ...

最新文章

  1. opencv meanStdDev
  2. 10285 - Longest Run on a Snowboard
  3. 1491. [NOI2007]社交网络【最短路计数】
  4. 5分钟读完华为区块链白皮书关键信息:推动构建一种新型价值网络
  5. Android中数据库的一些操作(增删改查)
  6. jQuery 一些小技巧
  7. Android pm 命令详解
  8. 【转载】Nginx简介及使用Nginx实现负载均衡的原理
  9. 2021大二实训part02
  10. mate50 鸿蒙,华为Mate50Pro概念机:瀑布环绕屏+鸿蒙系统,就算涨价我也劝你买...
  11. 计算机工作区如何删除,Windows Ink工作区是什么,怎么打开/关闭Windows Ink?
  12. 什么是OsmocomBB
  13. outlook附加文件超过服务器允许大小,如何在Outlook中更改或增加附件大小限制?...
  14. 源于小程序智能名片的两点思考
  15. 火遍网络的KPI异常检测到底什么梗?
  16. oracle恢复误删的表
  17. PXC 配置笔记-从MySQL直接转成PXC集群
  18. openpyxl详解
  19. “你当然是个胆小鬼。”昆仑叶哲华骄傲地说道
  20. 视频教程-JAVA WEB开发实战-Java

热门文章

  1. OracleSpatial函数实例
  2. 也来谈一谈js的浅复制和深复制
  3. 阐述Spring框架中Bean的生命周期?
  4. MySQL CASE WHEN 根据一个表的字段值不同关联查询两张不同的表【子查询】
  5. 我是怎么找电子书的?
  6. 软考难点—软件开发模型(借鉴)
  7. 软件测试实用技术与常用模板:内容提要
  8. CSS Repeater - 交错显示行背景色 table行鼠标进入事件特效 禁止文本换行
  9. Paradox of Our Times--我们这个时代的尴尬
  10. GTK 4.0 图形工具包正式发布