IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> git常用高危命令整理 -> 正文阅读

[开发工具]git常用高危命令整理

以下操作均属高危搞作,请谨慎使用

一、移除错误的push(操作一旦完成无法恢复)

1、查询想要回退的commit-id, 一般选择出错commit的前一个commit-id,并复制下来

git log

2、切换到对应的commit

git reset --hard <commit-id>

3、强制提交代码

git push -f
总结:这个方法,适用于push了一份错误的代码,且没有其他人在这份错误代码的基础上进行开发,切换到对应的commit后,强制提交,会将切换对应commit之前的全部commit覆盖。

二、移除错误的push(可恢复)

1、查询想要回退的commit-id, 一般选择出错commit的前一个commit-id,并复制下来

git log

2、切换到对应的commit

git reset --soft <commit-id>

3、将本地的错误代码暂存

git stash

4、强制提交

git push -f

5、在本地恢复错误的代码

git stash pop
总结:这种方式流程多了一步暂存,可以将错误的代码暂存起来,然后将没有问题的代码强制提交到对应分支。 回过头来,再选择是否需要再本地恢复错误的代码,如果不想恢复,可以执行git stash clear将暂存的代码清空,如果想改改错误的代码再提交,就可以执行git stash pop。然后继续push。这个操作和上一个操作基本一样,只能切换到某次commit,并覆盖掉之前的全部commit

三、移除错误的push(中间某次commit)

解释:在某个分支,你提交了一次错误代码之后,自己或是有其他人在你的这次错误之后又提交了部分代码。

1、查询出错commit-id,并复制下来

git log

2、使用soft切换到对应的commit

git reset --soft <commit-id>

3、暂存错误代码之后提交的正确代码

git stash

4、继续查询出错的前一次commit-id,并复制下来

5、使用hard切换到对应的commit

git reset --hard <commit-id>

6、恢复暂存的正确代码

git stash pop

7、强制提交代码

git push -f
总结:这种情况已经在开始进行了说明,原理是先切换到错误的commit,并将错误之后的正确代码暂存,然后切换到错误之前的commit,恢复正确的代码,这样就将错误的commit从中间排除出来了,最后进行push。覆盖之前的操作。

四、多分支转移commit

场景解释:假设有两个分支dev1,dev2, 你在dev1开发, 但是因为某些奇怪的原因,切换到了dev2,巧合的是你忘记了自己切换到dev2的事情,所以把本应该提交到dev1的代码,提交到了dev2. 此时应该可以使用如下操作

1、在错误分支查询这次不应该出现的commit-id,并复制下来

2、切换到正确分支

git checkout <branch name>

3、将错误的commit转移到当前分支

git cherry-pick <commit-id>

命令解释

git reset --hard 与 git reset --soft的区别

git–hard会删除本地代码,并将指针切换到指定的commit
git–soft不会删除本地代码,并将指针切换到指定的commit

git stash

git stash暂存当前没有commit过的代码,并且可以连续多次stash
git stash pop可以按顺序,每次一份恢复暂存的代码
git stash clear 清空暂存的代码

git push -f

强制提交代码

git cherry-pick

从一个分支将某段commit代码转移到另一个分支,可以连续多个转移

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:19:38  更:2022-04-15 00:20:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/14 14:52:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码