我有一个名为mainrepo
的主仓库和一个名为auxrepo
的外部仓库。
通常,我将auxrepo
的git子树拉到mainrepo
内的目录中,如下所示:
首先,我在mainrepo
中创建了一个名为aux-update
的新分支,然后是:
git remote add auxrepo git@git.example.com:example/auxrepo.git
git subtree add --squash --prefix=lib/auxrepo auxrepo auxrepo-branch
git subtree pull --squash --prefix=lib/auxrepo auxrepo auxrepo-branch
git commit
然后我会将aux-update
分支合并到mainrepo
。
但是,昨天我从auxrepo
中删除了一些错误代码,并且必须将更改恢复为mainrepo
。我是通过git revert -m 1 $SHA
执行此操作的,其中$SHA
是aux-update
分支合并的sha。
今天auxrepo
已经修复了新的提交,我希望再次使用子树拉取所有内容。
问题是,当我只是按照惯例git subtree pull --squash --prefix=lib/auxrepo auxrepo auxrepo-branch
进行操作时,它只会从今天开始提交新提交,而不是那些被还原的旧提交。
我如何从auxrepo
中提取所有提交的子树,包括昨天的提交和今天的新提交?
答案 0 :(得分:1)
尝试
git revert $REVERTED_SHA
git subtree pull -squash --prefix=lib/auxrepo auxrepo auxrepo-branch
$ REVERTED_SHA是您在git revert -m 1 $SHA