Git回滚远程版本

简介:

“房子是租的 但生活不是”

1.故事的开始

远程master分支下代码被不小心提交了很多垃圾代码或项目删掉,想要回滚到以前的某一版本并删除commit log。怎么办?情景如图:

1

情景很简单。老板上传了个文件,我把他删掉了。有一种办法,把文件再push下,但是也不想他看到图中那comment(ps:这样我才不会被fire)。实现上面场景的代码如下:

1
2
3
4
5
6
vim A.txt
git add .
git commit -a -m "add A.txt"
git push
rm A.txt
git commit -a -

2.解决之道

2.1工作区,暂存区,本地版本库 & 远程版本库

No pic say 个 78。。。

2

① 工作区:就是我们操作的目录

② 暂存区:操作目录的快照

③ 本地版本库:Git的精髓,人人都是中央仓库。也就是Git分布式的好处,自然对比SVN这种集中式

④ 远程版本库:Github这种中央仓库,可以达到共享。

常用的操作也如图所示,不言而喻了。

 

2.2 实战解决

Talk is cheap,Show me the code or money~ 代码如下:

1
2
3
4
git log
git reset --soft ${commit- id }
git stash
git push -f

详解如下:

 

第1行:git log 查看提交历史,然后找到要回滚的版本。历史如下,

1
2
3
4
5
6
7
8
commit 84686b426c3a8a3d569ae56b6788278c10b27e5b
Author: JeffLi1993 <qiangqiangli1993@gmail.com>
Date:   Fri Apr 8 19:11:32 2016 +0800
    我删除了老板的东西
commit 72bd6304c3c6e1cb7034114db1dd1b8376a6283a
Author: JeffLi1993 <qiangqiangli1993@gmail.com>
Date:   Fri Apr 8 19:05:23 2016 +0800
    add A.txt

我们想要回滚到的版本就是:72bd6304c3c6e1cb7034114db1dd1b8376a6283a

 

第2行,输入对应版本即可:

1
git reset --soft 72bd6304c3c6e1cb7034114db1dd1b8376a6283a

撤销到某个版本之前,之前的修改退回到暂存区(不懂看漂亮的图哦~)。soft 和 hard参数的区别就是,hard修改记录都没了,soft则会保留修改记录。

 

第3行:暂存为了安全起见。

 

第4行,覆盖 -f,对

1
git push -f

将本地master push 到远程版本库中, -f 强制覆盖

 

3. 小结

1
2
1. git reset 回滚到某个版本之前
2. git push -f 强制push覆盖

 

相关文章
|
21天前
|
开发工具 git
记IDEA Git版本回退并push到远程操作
记IDEA Git版本回退并push到远程操作
28 1
记IDEA Git版本回退并push到远程操作
|
30天前
|
开发工具 git
【git 实用指南】git 修复错误提交,版本回退
【git 实用指南】git 修复错误提交,版本回退
22 1
|
3月前
|
存储 开发工具 git
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
Pycharm git-创建本地仓库\创建分支\合并分支\回溯版本\加入git后文件颜色代表的含义
63 0
|
3月前
|
开发工具 git
git各阶段版本回退命令
git各阶段版本回退命令
|
29天前
|
开发工具 git
IDEA通过git回滚到某个提交节点或某个版本的操作方法
IDEA通过git回滚到某个提交节点或某个版本的操作方法
15 0
|
3月前
|
开发工具 git
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(二)
|
3月前
|
算法 安全 Linux
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件(一)
|
3月前
|
开发工具 git
【git】git 查看 modified 状态文件与上个版本的改动
【git】git 查看 modified 状态文件与上个版本的改动
35 0
|
4月前
|
存储 开发工具 git
(详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert
(详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert
61 0
|
开发工具 git Python
Git 远程推送被拒绝的一种解决方案
今天在推送的时候发生了如下错误信息: error: 无法推送一些引用到 'https://gitee.com/von_w/demo_app.git'提示:更新被拒绝,因为您当前分支的最新提交落后于其对应的远程分支。
4086 0

相关实验场景

更多