首页 > 解决方案 > 子树合并后的 git log

问题描述

我通过执行所谓的subtree merge成功地将一个 git 子存储库合并到一个主要的子文件夹中。

说,类似的东西:

/project_B-git
 +--src/

/main-repo-git
 +--subproject_A/
 +--subproject_B/    <--- SUBTREE MERGE
    +--src/

现在我的问题是我不能将主仓库中的日志历史限制为仅导入仓库的子历史:

原始项目中的历史:

project_B-git$ git log --oneline 
* 76543210 Say hello, wave goodbye.
* 01234567 A message to you Rudy.

合并后主仓库中的完整历史记录:

main-repo-git$ git log --oneline --graph
*   646bf9bb Merge subproject_B.
|\  
| * 76543210 Say hello, wave goodbye.
| * 01234567 A message to you Rudy.
|
* f71fdb10 Init.

我现在得到的过滤历史:

main-repo-git$ git log --oneline --graph -- subproject_B/
* 646bf9bb Merge subproject_B.
* f71fdb10 Init.

因此,您会看到,当我按路径过滤历史记录时,我只看到合并提交,“丢失”了所有subproject_B的历史记录。我想得到:

* 646bf9bb Merge subproject_B.
* 76543210 Say hello, wave goodbye.
* 01234567 A message to you Rudy.

我试图通读git-log's 的手册页,但我看不到选择给定合并分支的方法,因此我可以要求 git 跟随另一个分支(--left-only/--right-only选项不起作用)。

标签: gitgit-merge

解决方案


推荐阅读