合并多次提交 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';

 

 

 


 

posted @   托马斯布莱克  阅读(3499)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示