转载学习
Git撤销已经推送(push)至远端仓库的提交(commit)信息
2018年03月04日 12:11:19
阅读数:592
有关修改提交(git commit)信息的方法可以参考:
Git commit –amend 修改提交信息
有时,在
git push
之后,才发现还有一些代码需要进行
很小的改动
,这些改动在原则上不应该作为一次新的提交。
这时,我们需要撤销这次推送(
git push
)与提交(
git commit
),然后进行代码修改,再重新进行提交和推送。
为了实现这个目的,需要进行三步操作。
1.撤销提交信息
首先,通过
git log
查看提交信息,以便获取需要回退至的版本号:
$ git logcommit a44822002522f2ab1e3a5e2a1cec00a7d3d02185 (HEAD -> master, origin/master, origin/HEAD)Author: hanchao5272 <
89298141
@qq
.com
>Date: Sun Mar
4
11
:
14
:
55
2018
+
0800
CSDN-java反射
06
-成员变量Field-代码优化commit aa909cff2239536df14820fe086d96305b24e9f1Author: hanchao5272 <
89298141
@qq
.com
>Date: Sat Mar
3
23
:
43
:
03
2018
+
0800
CSDN-java反射-修饰符-代码优化
我们需要撤销
CSDN-java反射06-成员变量Field-代码优化
这次提交,所以需要回退至的版本是
CSDN-java反射-修饰符-代码优化
,即需要回退至的版本号是:aa909cff2239536df14820fe086d96305b24e9f1。
然后,通过
git reset –soft <版本号>
重置至指定版本的提交,达到撤销提交的目的:
$
git
reset
--
soft
aa909cff2239536df14820fe086d96305b24e9f1
参数
soft
指的是:保留当前工作区,以便重新提交
还可以选择参数
hard
,会撤销相应工作区的修改,一定要谨慎使用
然后,通过
git log
确认是否成功撤销:
$ git
log
commit aa909cff2239536df14820fe086d96305b24e9f1 (HEAD
->
master)Author: hanchao5272
<
89298141
@qq
.
com
>
Date
: Sat Mar
3
23
:
43
:
03
2018
+
0800
CSDN-java反射
-
修饰符
-
代码优化
已经成功撤销。
2.撤销
通过
git push origin master –force
强制提交当前版本号,以达到撤销版本号的目的:
$ git
push
origin master --forceTotal
0
(delta
0
), reused
0
(delta
0
)To github
.com
:hanchao5272/myreflect
.git
+ a448220..
.aa
909cf master -> master (forced update)
必须添加参数
force
进行强制提交,否则会提交失败,并报错:
$ git push origin masterTo github.com:hanchao5272/myreflect.git ! [rejected] master -> master (non-fast-forward)
error
: failed
to
push
some
refs
to
'git@github.com:hanchao5272/myreflect.git'hint: Updates were rejected because
the
tip
of
your current branch
is
behind
hint:
its
remote counterpart. Integrate
the
remote changes (e.g.hint: 'git pull ...')
before
pushing again.hint: See
the
'Note
about
fast-forwards'
in
'git push
--help' for details.
报错原因:
本地项目版本号低于远端仓库版本号
。
3.修改代码,重新提交和推送
//修改代码,添加修改
git add
.
//重新提交
git commit -m
"CSDN-java反射06-成员变量Field-代码优化"
//重新推送
git push origin master