首页 > 解决方案 > Git:如何将分支的历史保存到单个文件中

问题描述

我正在迭代 Git 分支中的代码功能,最终将通过 rebase 归结为单个提交/补丁。但是,我仍然想以某种方式将原始提交保存在一个历史文件中,所以我有我的工作记录。做这个的最好方式是什么?

我现在能想到的最好的方法是使用git format-patch master然后将生成的所有补丁文件连接到一个文件中。这种方法的唯一问题是我很懒。我懒得在 git 之外做所有这些事情。

标签: 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

最后一个选项将为您提供所有带有提交消息和内容的连接差异。


推荐阅读