通过执行所谓的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.
所以当你按路径过滤我的历史记录时,我只会看到合并提交,&#34;丢失&#34;所有子项目_B 的历史记录。我想得到:
* 646bf9bb Merge subproject_B.
* 76543210 Say hello, wave goodbye.
* 01234567 A message to you Rudy.
我尝试阅读git-log
的手册页,但我无法看到选择给定合并分支的方法,因此我可以让git跟随其他分支(--left-only
/ --right-only
选项未执行此任务。)