跳过正文
  1. Posts/

Git 提交合并(Squash)

·296 字·1 分钟· ·
沈显鹏
作者
沈显鹏
目录

本地提交尚未推送到远程
#

如果要将本地的多个提交合并为一个,可以按以下流程操作。

这里有一个 3 分钟短视频 讲解了 git rebase -i 的用法。

  1. 查看本地仓库的日志:
    git log --oneline
    

``

list your logs in oneline

  1. 假设要合并最近的 3 个提交(add61523650100396a652):

    git rebase -i HEAD~3
    

    list last three commits

  2. 将需要合并到前一个提交的记录改为 ssquash

    combine three commits to one

  3. 保存退出(ESC:wq!)。

  4. 在提交信息编辑界面中,注释掉不需要保留的提交信息:

    comment out some commits message you don’t need
    comment out some commits message you don’t need

  5. 查看日志,确认已合并为一个提交:

    comment out some commits message you don’t need


提交已推送到远程
#

如果提交已推送到远程,建议新建分支进行 squash 以避免影响已有分支历史。

  1. 查看日志:

    list your logs in oneline

  2. 新建分支:

    git checkout -b bugfix/UNV-1234-for-squash
    
  3. 合并最近 2 个提交:

    git rebase -i HEAD~2
    

    select a commit you want to squash

  4. 修改提交信息,例如:

    UNV-1234 combine all commit to one commit
    

    comment out commit message you don’t want to display

  5. 推送新分支到远程:

    git push -u origin bugfix/UNV-1234-for-squash
    

相关文章

Git 分支策略
·772 字·2 分钟
介绍大型项目的 Git 分支策略,包括 master、develop、release 和 hotfix 分支的作用和使用方法,帮助团队更好地管理代码和版本发布。
通过 Jenkins 来提交修改的代码 git push by Jenkins
·439 字·1 分钟
如何通过 Jenkins Pipeline 脚本来提交修改的代码到 Git 仓库,包括克隆仓库、修改代码和推送更改等步骤。
Git 管理
·324 字·1 分钟
本文介绍了 Git 的常见管理操作,包括分支管理、提交规范、代码审查等,帮助开发者更好地使用 Git 进行版本控制。
Error: Permission denied (publickey)
·276 字·1 分钟
本文介绍了如何在配置多个 SSH Git Key 时解决 “Permission denied (publickey)” 错误,确保 GitHub 和 Bitbucket 的 SSH 连接正常工作。
如何通过 Jenkins 进行资源的锁定和释放
·901 字·2 分钟
本文介绍了如何使用 Jenkins 的 Lockable Resources 插件来管理和锁定资源,确保在多任务环境中资源的独占性和安全性。
在大型企业里维护多分支流水线
·1598 字·4 分钟
如果没有适当的解决方案,在大型企业可能难以创建和维护多分支流水线。