首页 > 其他分享 >git 命令行操作

git 命令行操作

时间:2022-10-02 01:33:06浏览次数:45  
标签:git hash -- dev 命令行 commit msg 操作

开发实践:

1.在开发中,dev分支提交了4个commit,push到了远程,提了合并master的pr.leader审核打回两个问题commit,需要修改.在本地修改新增了两个commit,现在需要将修改的commit合并到相应的commit中.

当前状态:

已push的四个commit,时间正序,a,b,c,d;

新增的两个commit,b1,d1;

目标:

将commit b,b1合并,d,d1合并,仍是4个commit,a,b,c,d

问题:

由于b,d业务逻辑相关,合并b,b1时有冲突.同时d1亦会与合并后的b冲突.

实际操作:

--fetch

git fetch --all

--备份dev

git checkout -b dev_backup

--根据master创建新的dev_temp分支

git checkout master

git checkout -b dev_temp

--在dev_temp上按正序摘取dev分支的a,b,c,d,b1五个commit

git cherry-pick a_hash b_hash c_hash d_hash b1_hash

--合并b,b1两个commit

git rebase -i head~4

此时弹出vi有信息如:

pick b_hash commit_msg 
pick c_hash commit_msg
pick d_hash commit_msg
pick b1_hash commit_msg

将其修改为:

pick b_hash commit_msg 
squash b1_hash commit_msg
pick c_hash commit_msg
pick d_hash commit_msg

保存时,会提示代码b与b1两个commit代码冲突,解决冲突后

git add .

git rebase --continue

此时弹出vi,填写合并b,b1的commit_msg后,保存,rebase成功.b,b1两个commit合并成功.其commit 为 b

--摘取commit d1

git cherry-pick a_hash

此时git提示冲突,两方为合并后的b与d1,解决之.

git add .
git cherry-pick --continue

此时摘取d1成功

--合并d,d1两个commit

git rebase -i head~4

vi

pick d_hash commit_msg 
squash d1_hash commit_msg

无冲突,合并之.

--删除dev分支,将dev_temp更名为dev,变基master,force push,删除dev_temp分支

git checkout master
git branch -D dev
git checkout dev_temp
git branck -m dev
git fetch --all
git rebase origin/master
git push --set-upstream origin dev --force
git branch -D dev_temp

git 操作完成,关闭原有pr,新提pr,git的commit数量和msg与原来的保持一致.

 

标签:git,hash,--,dev,命令行,commit,msg,操作
From: https://www.cnblogs.com/kplsm123/p/16748155.html

相关文章

  • 【小项目】微信定时推送天气预报Github项目使用及原理介绍-包含cron、天气预报、常用a
    一、资料链接1、github地址https://github.com/qq1534774766/wx-push2、教程地址https://blog.csdn.net/qq15347747/article/details/1265217743、易客云API(自动发送......
  • 数组操作の旋转二维数组
    一、题目描述:​​旋转图像​​给定一个n × n的二维矩阵 matrix表示一个图像。请你将图像顺时针旋转90度。你必须在原地旋转图像,这意味着你需要直接修改输入的二......
  • Dockerfile-文件的复制与目录操作
    往镜像里复制文件有两种方式,COPY和ADD,我们来看一下两者的不同。复制普通文件COPY和ADD都可以把local的一个文件复制到镜像里,如果目标目录不存在,则会自动创建......
  • 摆脱鼠标操作 vscode-vim-use-readme.md
    vscode-vim学习笔记梳理下自己定义的快捷键Normal模式返回ESCcapsLock双击shiftctrl+[jj一共5种快捷键下面不说模式的均为Normal模式任何时候第一时间返......
  • 自定义全局操作
    ​​官方文档​​​​官方文档​​​​官方案例​​定义sqlpublicclassFindOneextendsAbstractMethod{@OverridepublicMappedStatementinjectMappedStatemen......
  • git常用命令
    笔记主要内容为git常用命令全局设置gitconfig--globaluser.namexxx:设置全局用户名,信息记录在~/.gitconfig文件中[email protected]:设置......
  • Git相关命令整理
    gitconfig--globaluser.name//配置姓名gitconfig--globaluser.email//配置邮箱gitconfig--list//查看配置信息gitinit //初始化本地仓库gitstatus //查......
  • pyqt5 数据库相关操作
    获取上传文件与下载文件路径fromPyQt5.QtWidgetsimportQFileDialog,QMessageBoxclassWindow_WH():def__init__(self):self.mainwindow=QWidget()......
  • redis的list类型基本操作
    1、首先连上你的redis以下一些命令很简单,或者执行命令后效果也无法体现的就没有进行截图展示2、list相关操作说明:redis的列表是简单的字符串列表,按照插入顺序排序。它......
  • Oracle 19C 安装及基本操作
    Oracle19c安装包地址:https://pan.baidu.com/s/1CnbkJMLOvPN7rZNUEtttdg 提取码:p00sRedHat7.4安装包地址:https://pan.baidu.com/s/1gNg4B4L2bplkQj46ksyH7A 提取码......