一、刚提交的代码,发现需要微调一下

  刚刚最新提交了一段代码,然后跟前端说,接口好了。过了2分钟,前端跟你说,哎,兄弟,那个金额能不能返回整数,不要小数点。

  这个时候一般我们通常会修改一下之后,再提交一个版本。那么又过了2分钟,前端又跑来说,哎,兄弟,那个日期能不能换个格式...

  正常我们又会修改下后再提交一个版本,那么就一些简单的改动,我们就提交了好几个版本,可以是可以,不过还有一个更加优雅和简单的解决方法: commit --amend

  

  "amend" 是「修正」的意思。在提交时,如果加上 --amend 参数,Git 不会在当前 commit 上增加 commit,而是会把当前 commit 里的内容和暂存区(stageing area)里的内容合并起来后创建一个新的 commit,用这个新的 commit 把当前 commit 替换掉。所以 commit --amend 做的事就是它的字面意思:对最新一条 commit 进行修正。

具体地,当你把修改改完之后,直接运行:

git add .
git commit --amend

之后会出现你之前一个提交的信息:

你可以修改或保留它,然后保存退出就可以了。你的最新commit就被更新了,如下图所示:

二、要修改的不是最新的commit,而是倒数第二个

  突然我先我们倒数第二个提交需要进行一些微小的调整,那么这时候我们就不能用上面那种处理方式了,不过也是有办法的。

  

rebase -i :是 rebase --interactive 的缩写,意思为「交互式rebase」。

git log 后我们发现是倒数第二个commit需要修改,那么此时我们可以运行:

   git rebase -i HEAD^^ ,就会跳出如下这个界面。

这个编辑界面的最顶部,列出了将要「被 rebase」的所有 commits,也就是倒数第二个 commit 「modify testgit」和最新的 commit「mofify .gitignore」。

需要注意,这个排列是正序的,旧的 commit 会排在上面,新的排在下面。

此时,我们需要修改哪个commit,就可以把commit 之前的pick修改成edit ,然后就可以退出这个界面。

上面的界面告诉我们,rebase过程已经停在需要修改的那个commit,然后我们可以进行修改了,修改完后:

git add .
git commit --amend

上传修改后,就可以运行:

 git rebase --continue

如果没有冲突,那么就完美rebase了。

三、紧急情况:stash存储

  当你正在敲着键盘,埋头开发一个新功能时,突然有人跑过来跟你说,哎,兄弟,你之前开发的那个功能出现了一个bug,赶紧改一下,这时候你新分支功能才刚刚开了一个头,如果直接commit一次肯定是可以的,不过有更好的处理办法-- git stash . 

 git stash 后会把你工作目录的改动清空,然后存储到另外一个地方。需要注意的是, git stash 会忽略那些没有被track的文件,这时候需要加上参数-u,即 git stash -u 。

当你把bug修复后,切回工作分支。然后:

git stash pop

你之前存储的东西就回来了,是不是很方便?

Git进阶--你可能不知道的很好用Git功能的更多相关文章

  1. 关于Git我们不得不知道的事(一)

    一.什么是Git? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git可以协助我们很方便的管理我们的项目,我们随时可以找回(或者回到)我们之前任何一个时刻的项目:还可以让同事或者开发小 ...

  2. 分享几个你可能不知道的交互式Git 命令

    摘要:本文中讲述的几个交互式 Git 命令可以帮助你将文件的特定部分组合成提交. 本文分享自华为云社区<Git你有可能不知道交互式暂存>,作者:龙哥手记. 本节中的几个交互式 Git 命令 ...

  3. ES6 你可能不知道的事 – 基础篇

    序 ES6,或许应该叫 ES2015(2015 年 6 月正式发布),对于大多数前端同学都不陌生. 首先这篇文章不是工具书,不会去过多谈概念,而是想聊聊关于每个特性 你可能不知道的事,希望能为各位同学 ...

  4. 你所不知道的 CSS 阴影技巧与细节

    关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow 的用法. 最近一个新的项目,CSS-Ins ...

  5. JavaScript 优雅的实现方式包含你可能不知道的知识点

    有些东西很好用,但是你未必知道:有些东西你可能用过,但是你未必知道原理. 实现一个目的有多种途径,俗话说,条条大路通罗马.很多内容来自平时的一些收集以及过往博客文章底下的精彩评论,收集整理拓展一波,发 ...

  6. 你所不知道的 CSS 阴影技巧与细节 滚动视差?CSS 不在话下 神奇的选择器 :focus-within 当角色转换为面试官之后 NPOI 教程 - 3.2 打印相关设置 前端XSS相关整理 委托入门案例

    你所不知道的 CSS 阴影技巧与细节   关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow  ...

  7. 【CSS】346- 你所不知道的 CSS 阴影技巧与细节

    偷懒了1个多礼拜,在工作饱和的情况下,怎么坚持学习?今天的分享来自@Coco国服第一切图仔,我们聊聊CSS属性box-shadow- 关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 ...

  8. 一些你所不知道的VS Code插件

    摘要: 你所不知道的系列. 原文:提高 JavaScript 开发效率的高级 VSCode 扩展之二! 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 作为一名业余爱好者.专业人员,甚 ...

  9. Git 进阶指南(git ssh keys / reset / rebase / alias / tag / submodule )

    在掌握了基础的 Git 使用 之后,可能会遇到一些常见的问题.以下是猫哥筛选总结的部分常见问题,分享给各位朋友,掌握了这些问题的中的要点之后,git 进阶也就完成了,它包含以下部分: 如何修改 ori ...

随机推荐

  1. Word 开发资料集合

    Word 对象模型概述  https://msdn.microsoft.com/zh-cn/library/kw65a0we.aspx DSOframer微软官方API的查阅方法  http://sh ...

  2. mmap实现大文件快速拷贝

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  3. C++11_ 右值引用

    版权声明:本文为博主原创文章,未经博主允许不得转载. 由于右值所产生的临时变量问题一直是一种诟病,C++11中引入了右值引用这个核心语言机制,来提升运行期性能. 首先我先说明一下什么是左值和右值: 左 ...

  4. STL标准库-容器-map和multimap

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 map与multimap为关联容器,结构如下 map底层实现依然是rb_tree 他的data可以改,但是key不能改,因此ma ...

  5. Mysql查询正在运行的事务以及杀掉它

    查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 可以使用mysql命令 ...

  6. Leetcode 1023. Camelcase Matching

    暴力查找 class Solution: def camelMatch(self, queries: List[str], pattern: str) -> List[bool]: q_size ...

  7. CentOS6下yum升级安装mysql

    CentOS6默认版本的mysql是5.1.73,当前主流版本一般为mysql-5.6,需要安装该版本的话可以执行以下操作 1.1.卸载旧版mysql 1)备份数据 # 直接删除老版本的相关文件可能会 ...

  8. BZOJ5090: [Lydsy1711月赛]组题(01分数规划)

    5090: [Lydsy1711月赛]组题 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 785  Solved: 186[Submit][Status ...

  9. BZOJ4644: 经典傻逼题【线段树分治】【线性基】

    Description 这是一道经典傻逼题,对经典题很熟悉的人也不要激动,希望大家不要傻逼. 考虑一张N个点的带权无向图,点的编号为1到N. 对于图中的任意一个点集 (可以为空或者全集),所有恰好有一 ...

  10. 414 - Machined Surfaces

    Sample Input (character "B" for ease of reading. The actual input file will use the ASCII- ...