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';


  • 相关阅读:
    HDU 3681 Prison Break 越狱(状压DP,变形)
    POJ 2411 Mondriaan's Dream (状压DP,骨牌覆盖,经典)
    ZOJ 3471 Most Powerful (状压DP,经典)
    POJ 2288 Islands and Bridges (状压DP,变形)
    HDU 3001 Travelling (状压DP,3进制)
    POJ 3311 Hie with the Pie (状压DP)
    POJ 1185 炮兵阵地 (状压DP,轮廓线DP)
    FZU 2204 7
    POJ 3254 Corn Fields (状压DP,轮廓线DP)
    ZOJ 3494 BCD Code (数位DP,AC自动机)
  • 原文地址:https://www.cnblogs.com/xmanblue/p/5956129.html
Copyright © 2011-2022 走看看