git 远程仓库版本的回退以及git reset 几种常用方式记录
由于 github
push 了两个比较潦草的commit
, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程。
- 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制push 到远程仓库,强制将远程仓库还原到你想要的commit.
# 比方说我想 返回到 a1edaeb37a5 这个commit.
# 首先现在本地进行还原。
git reset --hard a1edaeb37a5
# 然后强制push 到远程仓库
git push -f git@192.168.1.4:chenfulin5/u-boot_2016.05.git master:master
-
这种强制push的方式有点危险 ,平时的 push 就用普通的 push 就行。
-
git reset 也分几种还原
git reset --help
# 平时我们的还原通常选用 `git reset --<mode> [<commit>]` 这种模式,这种模式也有几种情况:
# mode:
--soft 这个就是除了git commit 还原外其他的都保留,比如说git status 里面的内容和代码的修改。
--mixed 这个就是 除了代码修改保留外其他的都还原, 包括git commit 和 git status 里面的内容。
--hard 这个就将所有的都还原,包括代码 ,git add 后的内容以及 git commit 里面的内容。
Read The Fucking Source Code