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命令行学习二

git命令行练习地址:git练习地址

撤销变更

1.Git reset(直接退回到指定提交)

git reset 通过把分支记录回退几个提交记录来实现撤销改动
回退到上一个提交,当前提交的更改放到工作区(未跟踪)
变更前:
在这里插入图片描述
变更后:执行git reset HEAD^(HEAD~1)
在这里插入图片描述
本地仓库没有发现C2的存在(这个提交没有在本地仓库内,未提交状态)

2.Git revert(产生新的提交,是指定退回的提交的副本)

当前的提交记录还存在,新增了一条提交记录,新增的这条提交记录与需要退回的提交记录(上上条提交记录)一样
变更前:
在这里插入图片描述
变更后:执行:git revert HEAD
在这里插入图片描述
在我们要撤销的提交记录后面居然多了一个新提交!这是因为新提交记录 C2’ 引入了更改 —— 这些更改刚好是用来撤销 C2 这个提交的。也就是说 C2’ 的状态与 C1 是相同的。

练习:
在这里插入图片描述
执行

//处理local分支
git reset HEAD^(HEAD~1)
//切换到pushed分支
git checkout pushed
//撤销更改
git revert HEAD

整理提交记录

Git Cherry-pick

将一些(多个,可位于不同分支)提交复制到当前所在的位置(HEAD)下面的话, Cherry-pick 是最直接的方式了
merge和rebase是将两个分支合在一起,Cherry-pick是将多个(两个及以上)提交复制到当前位置(分支)
注意: cherry-pick 可以将提交树上任何地方的提交记录取过来追加到 HEAD 上(只要不是 HEAD 上游的提交就没问题)。

处理多个提交时,有遇到冲突的会中断复制操作,处理好冲突后,若还有提交未处理的,使用git cherry-pick --continue命令继续
在这里插入图片描述

变更前:
在这里插入图片描述
变更后:执行git cherry-pick C2 C4
在这里插入图片描述
练习:
在这里插入图片描述
执行:

//将多个提交复制到master分支上
git cherry-pick C3 C4 C7

交互式的 rebase

交互式的 rebase:指的是使用带参数 --interactive 的 rebase 命令, 简写为 -i。Git 会打开一个 UI 界面并列出将要被复制到目标分支的备选提交记录,它还会显示每个提交记录的哈希值和提交说明,提交说明有助于你理解这个提交进行了哪些更改。
git rebase --abort:去掉变基

执行前:
在这里插入图片描述
命令:git rebase -i HEAD~4
调整提交顺序
执行后:
在这里插入图片描述

例子练习:
在这里插入图片描述

//将切换bugFix分支切换到C1提交记录
git branch -f bugFix C1
//复制C4提交记录,并将当前bugFix指向新生成的C4`
git cherry-pick C4
//将master指向bugFix(C4`)提交记录
git branch -f master bugFix

例子2:
在这里插入图片描述

//使用rebase -i将C2和C3的顺序交换,生成C3`和C2`
git rebase -i HEAD~2
//提交新的基于C3`的记录C``,
git commit --amend
//将C2``和C3`的顺序交换,生成C2```和C3``
git rebase -i HEAD~2
//再将master分支指向C3``提交(与caption同指向)
git branch -f master caption

例子3:
在这里插入图片描述
命令:

//切换到master分支(指向C1)
git checkout master
//复制C2到当前分支,生成C2`
git cherry-pick C2
//再将master退回到C1提交记录
git branch -f master C1
//再将C2 C3复制到当前分支(master)生成c2`` c3`
git cherry-pick C2 C3
  开发工具 最新文章
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-09-21 00:48:32  更:2022-09-21 00:50:23 
 
开发: 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/25 22:49:10-

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