zoukankan      html  css  js  c++  java
  • 合并多次提交 commits 到 新分支

     压缩多个Commit


    当你提交代码进行代码审查时或者创建一次pull request (这在开源项目中经常发生),你的代码在被接受之前会被要求做一些变更。于是你进行了变更,并且直到下一次审查之前你没有再次被要求进行变更过。在你知道又要进行变更之前,你已经有了一些额外的commit。理想情况下,你可以用rebase命令把多个commit压缩成一个。

    git rebase -i HEAD~[number_of_commits]

    如果你想要压缩最后两个commit,你需要运行下列命令。

    git rebase -i HEAD~2

    运行该命令时,你会看到一个交互界面,列出了许多commit让你选择哪些需要进行压缩。理想情况下,你选择最后一次commit并把其它老commit都进行压缩。

    Git squash interactive

    然后会要求你为新的commit录入提交信息。这一过程本质上重写了你的commit历史。

    Adding a commit message




    其他方式:

    [备忘]git,合并分支时,把多个commit合并为一个commit

     如果你要把其他分支中几个提交合并到当前分支并且压缩为一个 commit

    //切换到要合并的分支 

    git checkout master

    //检出要合并的分支 (如果有冲突解冲突 )

    git cherry-pick  76cada  62ecb3  b886a0;

    // 把代码重置到 cherry-pick 之前

    git  reset dd2e86;

    // git add  and  commit  

    git add .

    git commit -m 'all in one';

     如果你的代码尚未Push到远程服务器 只是压缩本地commit 记录

    此时操作步骤 更少些 步骤如下:

    假如 本地有commit 76cada  62ecb3  .... b886a0   dd2e86 
     

     // reset 默认参数会保留工作区文件  只是去除 reset  commit 号之后的 所有提交记录 

    git  reset dd2e86;    //dd2e86  为本地多个想压缩的commit 之前的最后一次 commit 号

    // git add  and  commit  

    git add .

    git commit -m 'all in one';


  • 相关阅读:
    Redis分布式锁服务(转)
    redis分布式锁(转)
    MySQL+InnoDB semi-consitent read原理及实现分析(转)
    MySQL加锁处理分析(转)
    实战经验丨PHP反序列化漏洞总结
    脚本语言丨Batch入门教程第四章:调用与传参
    福利狂欢已开启,请做好准备!
    脚本语言丨Batch入门教程第三章:逻辑判断
    WinRAR存在严重的安全漏洞影响5亿用户
    Batch入门教程丨第二章:认识变量相关概念
  • 原文地址:https://www.cnblogs.com/xmanblue/p/5956129.html
Copyright © 2011-2022 走看看