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系列之rebase变基与commit压缩 -> 正文阅读

[开发工具]git系列之rebase变基与commit压缩

?

1. 方法1:1 git cherry-pick替代git rebase,可以作为一种的rebase的方法

//替代rebase的一种新的方法,比较好用,记录以下

1.第一步将修改的代码,提交后利用squash压缩成一个提交
2.第二步,分支更新到master,利用git cherry-pick 摘取压缩后的提交
3.注意,git cherry-pick出现矛盾后,需要手动搜索冲突代码,没有办法直接看到冲突的地方
4.提交后,查看检验格式域代码 

??????????在这里插入图片描述

???

2. 方法2:git–rebase

step1:首先切到本地master分支,更新到最新的远程分支,或者更新到需要作为rebase基的分支

step2:切到待rebase的分支,执行:git checkout 当前分支名称

git rebase master

step3: 根据提示处理conflict

step4: 对合并后的修改文件,git status查看,git add增加

step5: 继续执行

git rebase --continues 直至出现Apply(表示rebase成功)

step6: git branch 查看,临时分支已经消失,回归正常流程,提交代码(add,commit,push)

注意:

当重构代码长时间没有合并代码的时候,会出现这种状况。自己有很多次提交,落后master主分支有很多次提交,这个时候需要是使用

3.1 commit压缩

git rebase -i HEAD~13 //13表示落后的分支数目

//针对自己的分支执行commit 信息压缩,同时对主分支进行commit信息压缩,
//最后在执行rebase,可以有效的减少rebase难度,达到最需要rebase一次既
//可以完成整体代码的追赶

在这里插入图片描述

3.2 git squash,多个commit融合与修改提交

step1: 首先确保代码已经rebase完成,查看落后提交分指数

step2:优先使用命令,因为git系统会自动定位到你自己的第一节点(git squash or git reabse or git cherry-pick)等

git rebase -i

step2:

git rebase -i HEAD~5 //5表示从当前分支数的commit信息

step3: 将待合并commit信息前a修改为s,使用#注释掉不需要的commit信息

step4: VIM编辑器, Esc : wq! 即可

4 git have diverged

git出现Your branch and ‘origin/master’ have diverged解决方法
如果不需要保留本地的修改:

git fetch origin
git reset --hard origin/master

如果需要保留本地的修改:

git rebase origin/master
git pull --rebase

解决冲突

git rebase --continue
git push origin master

5. 压楠瓜举例:

回退四个提交commit:
git rebase -i HEAD~4

in the vim editor:

--命令git branch -a,列出所有分支,git branch dev 创建本地dev分区
--命令git checkout dev 切换到dev分区,工作区变成dev分支的内容
--命令git checkout –b dev 创建并切换到本地分支dev (其中,git branch dev 是创建本地分支dev ;  git checkout dev 是切换分支)
--命令git branch –d dev 删除分支dev
--命令git clone --recursive -b $分支 $远程仓库 $路径

分支:master
远程仓库:ssh://git@git.dev.cnicgz.cn:6822/datacenter/maintain.git
路径:/path/to/src
仓库自动命名名为origin(origin相当于别名,运行git remote –v)

--命令git status  查看本地(工作区)更新还没提交到本地分支的文件(实际文件目录)
--命令git commit -am "本次提交描述"(结合git add. 和 git commit -m)工作区内直接提交到本地分支
git add . 把本地更新还没提交到本地分支的文件增加到暂存区==git stage .
git commit –m "本次提交描述" 把暂存区的内容提交到本地分支
--命令git push origin 本地分支:远程分支  
把本地分支内容提交到远程分支,origin为默认远程仓库

--命令git log 查看git commit 版本
--命令git fetch 下载远程更新,所有远程仓库内容下载到本地版本库(.git)
--命令git merge origin/cms 把当前本地分支和远程指定分支进行merge, 若出现(XXX|MERGING)状态, 利用 git diff 查看冲突无法解决的地方
--命令git pull origin 等于 git fetch && git merge,尽量使用git fetch 和git merge (67)来代替git pull
--命令git stash 备份工作区内容(从最近commit中备份),然后可以进行修复bug,修复完利用git stash pop恢复工作区内容
--命令git reset <commit_id> 默认-soft, 如果要hard程度就git reset --hard <commit_id>回退版本, 回退版本后想要回最新版本,
--命令git reflog找到版本号后再次git reset <commit_id>
--命令git rebase dev 把dev分支上的东西更新到当前分支上
修改了4个文件,在不放弃任何修改的情况下,其中一个文件不想提交,如何操作?(没add : git add 已经add: git reset –soft )
修改到一半的文件,突然间不需要或者放弃修改了,怎么恢复未修改前文件? (git checkout)
代码写一半,被打断去做其他功能开发,未完成代码保存?(git stash)
代码写一半,发现忘记切换分支了?(git stash & git checkout)
代码需要回滚了(git reset

前后对比:
?在这里插入图片描述

????在这里插入图片描述

?

?
在这里插入图片描述

?

?

  开发工具 最新文章
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-05-07 11:21:13  更:2022-05-07 11:21:24 
 
开发: 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年5日历 -2024/5/19 4:02:18-

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