我以前从未使用过git subtree
,但我正在尝试将git存储库迁移到我的代码回购中,如下所示:
C:code>git subtree add -P database/scripts c:gitother-repo HEAD -m="Migrate from other-repo"
我没有错误,我可以看到所有提交都合并到我的历史记录中,我可以看到合并的历史提交的差异,但当我试图查看(在TortoiseGit中(合并的单个文件的日志时,它只显示一个提交,而不是other-repo
中的几十个。文件的提交历史记录没有显示,尽管我可以在存储库历史中看到提交和diffs
我无法截屏提交,但由于我没有使用--squash
,我想知道这是否是预期的。我是不是误解了子树的工作原理?
在合并提交期间,文件也会得到"重命名为":在原始回购中位于CCD_ 4处的文件现在位于database/scripts/that/file.sql
处。
尝试运行:
git log --graph -- database/scripts/that/file.sql that/file.sql
您应该看到对这两个位置都有影响的提交。
git log
也有一种默认情况下不处理合并提交的方法;以下选项组合似乎适用于我的机器:
# '--cc' is one of the options that tell git log to inspect the content of merge commits
git log --cc --follow --graph -- database/scripts/that/file.sql