news 2026/5/27 5:48:31

git提交拆分问题以及分批推送

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
git提交拆分问题以及分批推送

问题:

本地master有100个提交未推送到远程master上,一次推送100个提交到gitlab上会报错,所以只能分次提交,但是第60次提交数据大(可能),需要分成2个新提交

解决方法

方法一:

将 Git 全局的 HTTP 推送数据缓冲区大小设置为 524288000 字节(即 500 MB)

gitconfig--globalhttp.postBuffer524288000

注意事项:

如果你推送的文件大小超过了 Git 服务器(如 GitHub、GitLab、Gitee 等)的限制,依然会推送失败

方法二:

第一步:拆分第60次提交

1. 先备份
gitbranch backup-master

如果后续操作搞砸了,你可以随时用git reset --hard backup-master恢复到原始状态。

2. 启动交互式变基
gitrebase-i19fa4877280e8c6f15805576e1b79e388363a892
注意: 这个哈希值是有问题提交的父提交

例如:想拆分第2次提交,那么这个哈希值就是第1次提交的

这会打开一个文本编辑器,列出了从第2次提交到最后一次所有的提交
在编辑器中,找到第2次提交(注意:由于排列顺序,它大概在列表偏上的位置)。将该行前面的 pick 修改为 edit(或简写为 e):

edit f7g8h9i 第2次提交 <-- 把这里的 pick 改成 edit ... pick e3a1b35 第4次提交 pick a1b2c3d 第5次提交

保存并退出编辑器。Git 会开始执行变基,并在第2次提交处暂停,提示你进行修改

3. 拆分提交

此时,你的工作区停留在第2次提交刚完成的状态。我们需要把这次提交撤销,但保留文件修改,然后分两次重新提交:

a. 回退本次提交,将修改放回工作区:
gitreset HEAD^

(注意:不要加 --hard,加了会丢失代码修改。此时代码修改会变成“未暂存”状态)

b. 挑选第一批需要提交的文件或代码行:

如果你可以按文件拆分:

gitaddfile1.py file2.py# 添加属于第一个新提交的文件

如果在同一个文件中,你需要拆分具体的代码行:

gitadd-pfile3.py# 交互式选择,Git 会逐块询问你是否暂存,输入 y 暂存,n 跳过

c. 创建第一个新提交:

gitcommit-m"第2次提交 - Part 1"

d. 将剩余的修改添加到暂存区并创建第二个新提交:

gitadd.gitcommit-m"第2次提交 - Part 2"
4. 继续变基

拆分完成后,让 Git 继续执行剩余的变基过程:

gitrebase--continue

注意:(如果遇到冲突,解决冲突后执行 git add . 然后 git rebase --continue 即可。)

第二步:分批推送到远程

1. 推送前50个提交

你可以使用本地分支的某个历史提交来指定推送范围。查看前50个提交的哈希值(即当前 HEAD 往前数第51个提交):

假设得到的哈希值是 abcd123,我们将远程 master 快进合并到这个提交:

gitpush origin abcd123:refs/heads/master

这个命令的意思是:把本地 abcd123 这个提交推送到远程的 master 分支。因为它是当前提交的祖先,所以远程会接受,此时远程拥有了前50个提交。

2. 推送剩余的提交

现在远程已经有了前50个提交的基础,你可以直接把本地剩下的提交推上去:

gitpush origin master
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/27 5:47:39

AI语音智能体后端架构实战:从事件驱动到高并发优化

1. 项目概述&#xff1a;从零到一构建AI语音智能体的后端蓝图最近几年&#xff0c;AI语音交互从科幻概念迅速落地为可触达的产品&#xff0c;从智能客服到个人助理&#xff0c;其背后的技术栈和架构设计一直是开发者社区热议的话题。我们团队在过去一年里&#xff0c;完整地走通…

作者头像 李华
网站建设 2026/5/27 5:47:22

Cortex-M栈内存配置与地址获取实战指南

1. Cortex-M系统栈内存区域定位实战指南在嵌入式开发中&#xff0c;理解并掌握系统栈内存的布局是调试和优化的基本功。作为一名长期奋战在Cortex-M开发一线的工程师&#xff0c;我经常遇到需要精确获取栈内存边界地址的场景——无论是排查栈溢出问题&#xff0c;还是进行内存使…

作者头像 李华
网站建设 2026/5/27 5:39:44

基于Tmux实现多Claude Code会话管理:提升AI编程助手效率的终端工作流

1. 项目概述&#xff1a;告别标签页切换&#xff0c;在单一终端中管理多个Claude Code会话作为一名长期与终端和AI编程助手打交道的开发者&#xff0c;我深知在多个项目间切换、同时处理不同任务时的效率瓶颈。想象一下这样的场景&#xff1a;你正在终端里用Claude Code调试一个…

作者头像 李华
网站建设 2026/5/27 5:37:02

K8s 故障通用排查思路,从表层到内核,流程化+实操命令直接使用

各位运维工程师们&#xff0c;大家在 K8s 故障时是不是有点束手无策&#xff0c;接下来我通过这篇文章&#xff0c;详细的罗列出 K8s 排查思路的整体原则&#xff0c;方便大家在运维过程中的报错排查&#xff1a; 以下是相关顺序&#xff1a;先看现象→定位层级→逐级排查→日志…

作者头像 李华