Q:回滚已经在本地commit的记录,该怎么操作?
- 查看本地提交记录: git log
commit 61c00a6704cc2105e4ea9b411c04febff60cef10
Author: qiao <790872612@qq.com>
Date: Mon Mar 23 23:36:17 2020 +0800
commit test
commit 997b9ca0360de3e31c48eb38d2b1988229ef24f9
Author: qiao <790872612@qq.com>
Date: Mon Mar 23 09:22:29 2020 +0800
revert commit
- 回滚到指定记录中: git reset --hard {commitId}
git reset --hard 997b9ca0360de3e
3.回滚成功
Q:既然本地可以回滚,远程呢?
reset完成之后执行git push -f
,但是该操作一般不使用,原因是这样可以把其他人的commit都给reset。
git push -f
这个命令形式在实际开发中是被严格限制使用的!这里只是用于演示其“彪悍”的能力!
其实这种破坏性的操作之后,仍然有“后悔药”可以吃的,可以把丢失的 commit 抢救回来。
git reflog show --all
997b9ca refs/heads/master@{0}: reset: moving to 997b9ca0360de3e
d7be531 refs/heads/master@{1}: commit: commit demo
997b9ca refs/heads/master@{2}: reset: moving to 997b9ca0360de3e
git reset --hard d7be531
git log
commit d7be531966ecd6eaafd8b10861f30fe75ce0b90c
Author: qiaofenlin <790872612@qq.com>
Date: Mon Mar 23 23:50:17 2020 +0800
commit demo
commit 997b9ca0360de3e31c48eb38d2b1988229ef24f9
Author: qiaofenlin <790872612@qq.com>
Date: Mon Mar 23 09:22:29 2020 +0800
update document
这样就恢复啦
Git刷新本地远程分支
git remote update origin -p
Git刷新本地远程Tag
git fetch --tags
切换Tag
git checkout -b tagName tag
网友评论