Git撤销提交和修改相关操作

简介: 增补提交 git commit –C HEAD –a --amend -C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。 如果参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。

增补提交

git commit –C HEAD –a --amend

-C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。

如果参数是小写的-c,就会打开预先设置好的编辑器,以便在已有的提交留言基础上编辑修改。

增补提交只能针对最后一个提交,如果想更正好几个提交之前的某个错误,则须使用git revert这个命令。


反转提交

反转已经提交的改动,使用git revert命令,此命令通过在版本库中创建一个“反向的”新提交来抵消原来提交的改动。

通常Git会立即提交反转结果,但是也可以通过参数-n告诉Git先不要提交,这用于反转多个提交非常有用,运行多个git revert –n命令,Git会暂存所有的变更,然后做一次性提交。

做反转操作的时候必须提供提交名称,反转总是按照从新到旧点的倒序来操作的,即最后的提交最先反转,这样可以避免一些不必要的冲突。


复位

命令git reset可以在复位版本库后,暂存工作目录树中因复位产生的与版本库的差异,以便提交。

git reset --soft 该命令撤消上一个commit,但保留add的文件,使得Git暂存所有的因复位带来的差异,但不提交它。

之后,用户可以修改这些内容再提交,或者干脆扔掉这些内容。

选项--hard要小心使用,该选项会从版本库和工作目录树中同时删除提交,--hard就好像版本库中的删除键,并且不可恢复。

git reset是以提交名称作为参数的,默认值是HEAD,可以用^和~作为提交名称的修饰符来指定某个版本。

HEAD^是指把版本库复位到当前HEAD之前的那个节点上,把HEAD这个版本的修改扔到工作目录树中,

540ecb7~3是指要复位到540ecb7之前的三个节点上,即把该提交和之前的两个提交(共三个提交)扔到工作目录树中。

git reset --hard HEAD^ 强制复位前一个提交。

git reset HEAD可以用来清除已经add到缓存区但是不想进一步提交的内容。

另一种方式是用git rm --cached,选项--cached表明是清除缓存区,然后不动工作目录树。

注意git checkout filename将会删除该文件中所有没有暂存和提交的改动,这个操作是不可逆的。


如果不小心commit了一个不需要commit的文件,可以对其进行撤销

先使用git log 查看 commit日志

1
2
3
4
5
6
7
8
commit  422bc088a7d6c5429f1d0760d008d86c505f4abe
Author: test <test@gmail.com>
Date: Tue Sep  4  18 : 19 : 23  2015  + 0800
注释 - 本次为错误提交
commit  8da0fd772c3acabd6e21e85287bdcfcfe8e74c85
Merge:  461ac36  0283074
Author: test <test@gmail.com>
Date: Tue Sep  4  18 : 16 : 09  2015  + 0800


找到需要回退的那次commit的 哈希值,使用下面的命令进行回退:
git reset --hard commit_id

注意--hard可以把已经add的文件也删掉,谨慎使用。


目录
相关文章
|
21天前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
28 1
记IDEA Git版本回退并push到远程操作
|
29天前
|
开发工具 git 开发者
|
1月前
|
开发工具 git
web后端-IDEA的Git操作
web后端-IDEA的Git操作
|
2月前
|
Linux 网络安全 开发工具
Git拉取代码的完整示例操作
Git拉取代码的完整示例操作
63 0
|
3月前
|
Shell 开发工具 git
git相关操作
git相关操作
|
4月前
|
开发工具 git
Git操作远程仓库及解决合并冲突
Git操作远程仓库及解决合并冲突
65 0
|
3天前
|
Linux 开发工具 git
还不会 Git 子模块操作?一文教你学会 git submodule 的增、删、改、查!
还不会 Git 子模块操作?一文教你学会 git submodule 的增、删、改、查!
|
30天前
|
开发工具 git
|
1月前
|
存储 持续交付 开发工具
Git操作入门
Git是一个的开源分布式版本控制系统,它已经被广泛应用于软件开发、文档管理、代码托管等领域,成为当今最流行的版本控制系统之一。Git通过高效地管理文件的变化,使得团队协作更加高效,错误率更低。本文将介绍Git的工作原理、基本命令和常见用法等内容。
Git操作入门

相关实验场景

更多