如何挑选具有所有依赖关系的Gerrit?

问题描述 投票:0回答:1

比方说,有一些具有依赖关系的Gerrit:

A <- B <- C

((C取决于B,B取决于A)

如果我只是简单地选择C,它将无法工作,因为将不会挑选依赖项(A和B)。

我如何轻松地 cherry-pick C,以便在我的本地树中,其所有依赖项都将自动在一个命令中应用?

git version-control cherry-pick
1个回答
0
投票

如果已提交所有A,B和C,则可以考虑git merge

git merge C --no-ff
# merge commit does not invoke the hook commit-msg, so
# if your Gerrit requires Change-Id and you want to push
# the merged commits for review, use amend-commit to generate it
git commit --amend

如果其中至少一项尚未提交,请改用git cherry-pick

git cherry-pick HEAD..C --no-merges

HEAD..C等效于C和new到当前分支可到达的所有提交。 --no-merges排除其中的合并提交。在理想情况下,合并提交不涉及冲突,您也不必选择冲突。如果您确实想挑选一个合并提交,那么有点烦人,因为您必须指定哪个父级作为主线。

如果C及其祖先在本地尚不可用,则需要先获取它们:

git fetch origin <refspec_of_C>

您可以在C的页面上找到C的参考规范。像refs/changes/xx/xxxxx/x这样的裁判。如果C已提交到分支,则可以取而代之。

© www.soinside.com 2019 - 2024. All rights reserved.