2

我正在处理的一个项目将从许多远程存储库中提取单个文件。至关重要的是,每个拉入的文件在拉入新存储库时都保留其原始存储库中的完整提交历史记录,以便将来可以引用其提交历史记录。

我似乎找不到执行此操作的正确方法/工作流程。我在提取/处理文件时将远程存储库存储在本地。我从中提取的存储库也具有完全不同的目录结构,因此每当我拉入文件时,我也会将文件移动到新路径。

如果有某种 GUI 允许在具有历史记录的存储库之间并排文件移动,但如果需要远程路径将文件拉入当前存储库路径并没有那么大的问题,那将是理想的。我查看了 git archive 命令,但它不会拉入历史记录,有没有办法为此使用 checkout 命令?

我正在提取的文件具有非常详细的提交历史记录,这些历史记录准确地注释了某些事情发生变化的原因,这就是为什么我需要保留完整的单个文件历史记录(我不需要任何不影响文件的提交的提交历史记录拉进去)。我从中提取的一些存储库最初是我转换为 git 的 svn 存储库,但这可能不会导致任何问题,因为存储库历史似乎存在。

有时我正在合并来自外部存储库的文件,如果我可以为两者保留某种历史记录,那将是理想的,尽管我不确定这是否可能,很多时候我正在覆盖文件并且我想拥有新文件而不是旧文件的历史记录,或者至少标记合并的来源,这并不像我可以在提交中标记来源那么重要。

使用 Mercurial 会更容易吗?

4

0 回答 0