部分子树上游推送Git

时间:2015-06-26 21:09:29

标签: git git-subtree

我在Git中有一个情况,我有一个核心仓库,通过Git子树与其他仓库共享/使用。在repo“project”中,我有子树repo“core”,在那个核心中,我做了各种提交,我已经提交并推送到“项目”。我现在想将“core”文件夹中的这些更改推送到实际的“核心”存储库。这通常可以通过以下方式完成:

git subtree push --prefix=/core/ core-repo master

然而,在“core”文件夹中恰好有一个提交,我想保持本地“项目”。廉价的hacky方式是将所有内容推送到上游,然后恢复一次提交。我想知道是否有更合适的方法可以阻止这些特殊的变化从上游开始。感谢。

1 个答案:

答案 0 :(得分:2)

通常,您可以通过以下方式进行特定提交:

git push <remotename> <commit SHA>:<remotebranchname>

这将推送到远程分支,所有提交到指定的(包括)。

你应该能够(但我还没有测试过)通过子树推送来做到这一点。类似的东西:

git subtree push --prefix=/core/ core-repo <commit SHA>:master

在您的情况下,<commit SHA>应该是您要避免推送的提交之前的提交 请注意,如果您的提交遵循您不想推送的提交,则必须使用git rebase重新排序提交。