赞
踩
写完代码后,我们一般使用下面的命令提交代码
git add . #添加所有文件
git commit -m "代码提交" #提交代码
如果执行完commit后,想撤回commit,该怎么办?
使用下面命令即可撤回:
git reset --soft HEAD^ #撤销最近一次提交
这样就成功的撤销了最近一次的commit
说一下个人理解:
HEAD^ 的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
至于这几个参数:
–-mixed 意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的
–-soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--keep
任何本地更改都将丢失,文件将恢复到所选提交的状态,但本地更改将保持不变。
你已经提交了,然后你又在本地更改了,如果你选keep,那么提交的内容会丢失,你提交后又本地修改未提交的内容不会丢失。
–-hard
文件恢复到所选提交状态,任何更改都会丢失。删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
顺便说一下,如果commit注释写错了,只是想改一下注释,只需要:
git commit --amend
此时会进入默认vim编辑器,修改注释完毕后保存就好了。
git merge --abort
git reset --hard #撤销并舍弃指定的版本号之后的提交记录。使用需要谨慎。
示例:
git reset --hard 773b0e55ad81a55d2f964d530443931f25bce9d8
然后需要push到远程分支,但是直接git push, 是会报错的,因为本地版本落后于远程,需要强制推送命令
git push -f
然后查看本地和远程分支,可以看到我们的commit提交的那个版本没有了,版本回退到了提交之前的版本
这种强制提交,如果使用的是gitlab, 权限不是maintainer, 提交也会失败,需要找管理员提交。
这种方法非常适用于提交后报错一直解决不了的,前提是提交前项目可以正常运行
git revert 撤销。但是保留了提交记录。并且他是移除指定的提交。
获取需要回退的版本号,注意这里和上面的不一样,上面的是回退到之前的某一个版本,现在是撤销当前的版本。
git log
命令 查看已经提交过的commit信息版本号git revert 版本号
,(例子 git revert 773b0e55ad81a55d2f964d530443931f25bce9d8
)git push
到远程分支,即可。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。