git - 如何删除已合并的分支并保留日期
问题描述
假设使用主线 A 和已经合并的分支 B 跟随 git 历史。
b1 b2
-----•------•--- B
/ \
•------•----•--------------•-------• A
a1 a2 a3 a4 a5
a4 是一个合并提交,带有提交消息合并“将 B 合并到 A.
是否可以将历史记录更改为以下内容。
b1' b2'
•-----•-----•-----•-----•-----• A
a1 a2 a3 a5
编辑:如果可能,我不想更改提交日期。
解决方案
git cherry-pick
保存提交的日期
1) 转到提交 a2 git checkout a2
2) 创建新分支 C git branch C
3) 转到新分支 C git checkout C
4) 从 A 分支获取git cherry-pick a3 b1 b2 a5
5) 返回到 A git checkout A
6) 永久删除比提交 a2 更新的所有内容git reset --hard a2
7) 从分支 C 获取git cherry-pick a3 b1 b2 a5
8 ) 好删除分支 C,删除分支 Cgit branch -D C
推荐阅读
- python - 带有 Selenium 的 Python Chromedriver WinError 2
- react-leaflet - 如何模拟传单进行开玩笑测试?
- apache - 添加基本身份验证后apache无法访问网站
- typescript - 文件“/Path/hello.js”是一个 JavaScript 文件。您是否要启用“allowJs”选项
- c# - 使用 Npgsql 和 EF Core 3.1 为每个用户选择最后的订单
- python - 我的目录在这段代码中应该是什么?
- javascript - React 1000 个复选框 - 单击/重新渲染需要几秒钟
- python - Errno.13 尝试通过 HTML 和 Flask 访问文件时权限被拒绝
- android - 未经许可生成图像并有意分享
- docker - 是否可以在无 GUI 的服务器上运行嵌入 GUI 环境的 docker 容器并从远程 GUI 客户端打开 GUI 会话?