修改最后一次提交

有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用--amend 选项重新提交:

1
$ git commit --amend -m"修改 提交 说明"

此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会 重新编辑提交说明,但将要提交的文件快照和之前的一样。

启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。

如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend 提交:

1
2
3
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend

上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

git revert

git revert撤销 某次操作,此次操作之前和之后的commit都会被保留,并且 会把这次撤销作为一次最新的提交;

1
2
3
$ git revert HEAD                  撤销前一次 commit
大专栏  Git常用的操作指令s="line">$ git revert HEAD^ 撤销前前一次 commit
$ git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。
  • git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去,版本会递增,不影响之前提交的内容。

  • git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区;git reset是还原到指定的版本上,这将扔掉指定版本之后的版本

git diff

在工作中可以通过命令:

1
$ git log --author zhguixin

查看某一作者的提交记录,进一步的话可以通过git diff来比较不同提交记录时各个版本的差异。具体解释如下:
git diff --cached 显示索引区与git仓库之间的差异
git diff HEAD 显示当前工作目录与git仓库之间的差异
git diff HEAD^ 比较上次提交
git diff HEAD~2 比较上2次提交

--diff-filter=[ACDMRTUXB*]
显示指定状态的文件:Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), changed (T), are Unmerged (U), are Unknown (X)

git diff --stat 列出文件

git diff -- filename 只对比给定的文件

历史提交对比:
$ git diff commit 将所指定的某次提交与当前工作目录进行对比。

$ git diff commit1 commit2 将2次提交的内容进行对比
等价于
$ git diff commit1..commit2 如果省略任意一个commit,默认将使用HEAD代替

commit可以是简写的commit哈希值,也可是是HEAD。其中HEAD代表最后一次提交,HEAD^代表最后一次提交的父提交,HEAD~1等价于HEAD^,HEAD~2为倒数第二次提交,以此类推。

Git常用的操作指令的更多相关文章

  1. git常用命令操作

    git常用命令 #查看配置 git config -l #查看系统config git config --system --list #查看当前用户(global)配置 git config --gl ...

  2. Git常用的操作

    1.git使用的常规操作     git pull——>编辑——>git add——>git commit——>git push 用git add把文件添加进去,实际上就是把文 ...

  3. Git常用的操作记录(自用)

    分支常用操作命令 $ git branch -a //查看分支 $ git checkout -b dev origin/master  //切换/创建分支 $ git branch -vv 或 gi ...

  4. git中常见操作指令

    从git上拉下一个项目: 1.git clone 项目链接                  2. git checkout development (切换到development分支)       ...

  5. Git常用进阶操作之一

    提起Git,经常做项目的我们都不陌生,我们常用的功能有哪些呢? 这里按个人使用情况简单总结一下. 像新建远程仓库.新建分支这些就不说了,不熟的同学可以翻看我前面写的git基本操作. 1.首先提一下为每 ...

  6. 常用Dos操作指令

    1 dir 无参数:查看当前所在目录的文件和文件夹. /s:查看当前目录已经其所有子目录的文件和文件夹. /a:查看包括隐含文件的所有文件. /ah:只显示出隐含文件. /w:以紧凑方式(一行显示5个 ...

  7. 常用Linux操作指令

    -------------------------------Linux目录------------------------------- /:根目录,一般根目录下只存放目录,在Linux下有且只有一 ...

  8. git的一些操作指令

    1. mkdir learn 创建learn文件夹(也可不用命令创建,直接右击新建即可)   cd learn进入learn文件夹   git init  把learn文件夹 变成 可以用git管理的 ...

  9. Git 常用场景操作

    git init      在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.   git clone      获取一个u ...

随机推荐

  1. JavaScript中Promise 使用、原理以及实现过程

    1.什么是 Promise promise 是目前 JS 异步编程的主流解决方案,遵循 Promises/A+ 方案. 2.Promise 原理简析 (1)promise 本身相当于一个状态机,拥有三 ...

  2. Codeforces Round #524 (Div. 2)C 二维坐标系求俩矩形面积交

    题:https://codeforces.com/contest/1080/problem/C 题意:给n*m的二维坐标系,每个位置(xi,yi)都表示一个方格,(1,1)的位置是白色,整个坐标系黑白 ...

  3. 指定linux 下默认python版本

    sudo rm -rf python sudo ln -s /usr/bin/python3 /usr/bin/python

  4. mock简单的json返回

    针对非常简单的json返回串,我们也不一定非得通过freemarker模板的方式来构造返回数据,这里看实际的需求,如果返回的内容是固定的,而且json又非常简单,我们也可以直接写在程序里面,下面的接口 ...

  5. Python文件基本操作及上下文管理

    文件基本操作 打开文件:f = open(fole_name,mode = 'r'),传入表示文件路径的字符串,会返回一个文件对象,mode是文件打开模式. 关闭文件:f.close(),调用给定文件 ...

  6. soupUI解决md5加密签名,cookie传递

    问题详情: 1.接口调用需要前提状态:登录状态(cookie) 2.接口请求需要签名,签名规则为:MD5(TokenKey+apikey+timestamp+nonc) 其中 1.TokenKey.a ...

  7. rsync配置文件

    vim /etc/rsyncd.conf motd file = /etc/rsyncd.motd #设置服务器信息提示文件,在该文件中编写提示信息 transfer logging = yes #开 ...

  8. Eclipse 快捷键(mac)

    Option + Command + X: 运行Command + O:显示大纲Command + 1:快速修复Command + D:删除当前行Command + Option + ↓:复制当前行到 ...

  9. OpenCV 为程序界面添加滑动条

    #include <cv.h> #include <highgui.h> using namespace cv; /// 全局变量的声明与初始化 ; int alpha_sli ...

  10. SQL语句简单应用(未完)

    简介:   SQL(structured query language)结构化查询语句,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系型数据库系统,同时也是数据库脚本文件的扩展名 ...