还原后重新做git子树拉

时间:2014-10-06 20:22:14

标签: git merge git-subtree

我有一个名为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执行此操作的,其中$SHAaux-update分支合并的sha。

今天auxrepo已经修复了新的提交,我希望再次使用子树拉取所有内容。

问题是,当我只是按照惯例git subtree pull --squash --prefix=lib/auxrepo auxrepo auxrepo-branch进行操作时,它只会从今天开始提交新提交,而不是那些被还原的旧提交。

我如何从auxrepo中提取所有提交的子树,包括昨天的提交和今天的新提交?

1 个答案:

答案 0 :(得分:1)

尝试

git revert $REVERTED_SHA
git subtree pull -squash --prefix=lib/auxrepo auxrepo auxrepo-branch

$ REVERTED_SHA是您在git revert -m 1 $SHA

时创建的提交的Sha