git - Git:如何将分支的历史保存到单个文件中
问题描述
我正在迭代 Git 分支中的代码功能,最终将通过 rebase 归结为单个提交/补丁。但是,我仍然想以某种方式将原始提交保存在一个历史文件中,所以我有我的工作记录。做这个的最好方式是什么?
我现在能想到的最好的方法是使用git format-patch master
然后将生成的所有补丁文件连接到一个文件中。这种方法的唯一问题是我很懒。我懒得在 git 之外做所有这些事情。
解决方案
git 中的分支很便宜。分支只是一个显示存储库中提交的文件(当您压缩、合并和删除分支时,我故意跳过潜在的 GC)。
这样做的“git方式”就是:
git branch feature-backup
git rebase <some_commit>
在那个feature-backup
分支之后仍然会有你的旧历史。您不需要将feature-backup
分支推送到远程。它可能只是您当地的分支机构。
从您的分支进行更改的另一种方法是:
git diff <some_commit>...HEAD > all_commits_in_a_single_file.patch
git rebase <some_commit>
这样,您将在单个补丁文件中拥有分支上的所有更改。
如果您想将所有提交分开,您可以使用:
git log --cc <some_commit>...HEAD > all_history_in_a_single_file.txt
最后一个选项将为您提供所有带有提交消息和内容的连接差异。
推荐阅读
- excel - Excel VBA 存储 SQL 选择内容到剪贴板
- c# - 使用 Linq 递归查询 XML
- twilio - Twilio 将短信转发到电子邮件 - 找不到模块“得到”
- reactjs - React - TypeScript - Ant 设计表单 - 无法将道具传递给包装的组件
- java - 带有 AngularJS MIME 类型和 401 错误的 Spring Boot 2
- javascript - 在wordpress zapier网站上替换字符串中的字符
- eclipse - 在 Eclipse Oxygen 中运行码头的异常
- vue.js - vue.js 包装具有 v-models 的组件
- java - 格式化日期 - 找不到符号
- bash - 詹金斯管道bash执行