修改最后一次提交
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用--amend
选项重新提交:
1 |
$ git commit --amend -m"修改 提交 说明" |
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会 重新编辑提交说明,但将要提交的文件快照和之前的一样。
启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend
提交:
123 |
$ git commit -m 'initial commit'$ git add forgotten_file$ git commit --amend |
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
git revert
git revert
是 撤销 某次操作,此次操作之前和之后的commit都会被保留,并且 会把这次撤销作为一次最新的提交;
123 |
$ 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为倒数第二次提交,以此类推。
原文地址:https://www.cnblogs.com/lijianming180/p/12262443.html