我在 Git 中遇到了一种情况,其中我有一个核心存储库,它通过 Git 子树与其他存储库共享/使用。在 repo “项目”中,我有子树 repo “核心”,在该核心中我进行了各种提交,此后我已提交并推送到“项目”。我现在想将“core”文件夹中的这些更改推送到实际的“core”存储库。这通常可以通过以下方式完成:
git 子树推送 --prefix=/core/core-repo master
但是,“核心”文件夹中恰好有一个提交,我想将其保留在“项目”本地。一种廉价的黑客方法是将所有内容推向上游,然后恢复该提交。我想知道是否有更合适的方法来阻止这些特定的变化向上游发展。谢谢。
最佳答案
通常您可以使用以下命令推送到特定提交:
git push <remotename> <commit SHA>:<remotebranchname>
这会将指定(包括)之前的所有提交推送到远程分支。
您应该能够(但我还没有测试过)通过子树推送来做到这一点。像这样的东西:
git subtree push --prefix=/core/ core-repo <commit SHA>:master
就您而言<commit SHA>
应该是您想要避免推送的提交之前的提交。
请注意,如果您不想推送的提交后面有提交,则必须使用 git rebase
对提交重新排序。 .
关于git - Git 中的部分子树上游推送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31082195/