赞
踩
本文 git 相关命令:
回退分两种情况:
touch 创建了一个a.text,并提交到了本地仓库。
此时回滚a.text,git log找到要回退到的版本号,此处版本号为前一个版本。(或者通过 git reset [HEAD] 回退版本)
执行命令:git reset --soft 7ee5305f1e1e0f66c7d69666ff7054fc6e309464
通过idea可看到commit 记录被撤销了。
touch创建新文件 b.text, 并提交到本地仓库。
通过git log找到要回退到的版本号 7ee5305f1e1e0f66c7d69666ff7054fc6e309464
执行命令:git reset --mixed 7ee5305f1e1e0f66c7d69666ff7054fc6e309464
此时可以看到,git reset --mixed 撤销的文件 未加入到暂存区,所以是撤销 commit 和 add 两个动作。
新建文件a.text,并push到远程
执行命令:
git reset --hard 7ee5305f1e1e0f66c7d69666ff7054fc6e309464
git push -f(强制推送到远程,之前提交都会被覆盖,慎用)
此时可用看到提交记录和文件都被撤销了。使用需谨慎,不推荐使用。
当然,如果不小心用了git reset --hard 操作回退了,那么可用git reflog命令查看命令历史,找到被删除的commit,再次操作。
2.2 git revert(撤销,但是保留了提交记录)
新建文件a.text,并push到远程。
通过 git revert 版本号,撤销当前提交记录。版本号为要撤销的版本号,此处为当前提交的版本号。
可以看到本地和远程仓库文件都被撤销了。但是git log中能看到提交和撤销记录。
推荐用这种方式回退远程的代码。比如我们在master分支提交错了文件需要回退,那么我们用这个方式回退后,再用git cherry-pick commitId 重放该提交。最后本地修改了再push到远程。
回退分两种情况:
1.已 commit,未push到远程仓库。
2.已 commit,并且push到了远程仓库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。