Git 如何在cherry-pick命令中包含第一次提交?
Cliffnotes版本Git 如何在cherry-pick命令中包含第一次提交?,git,cherry-pick,Git,Cherry Pick,Cliffnotes版本 假设我想运行这个命令:git cherry pick ABC..XYZ。我希望ABC包含在我对当前分支的提交中。我必须在ABC之前引用提交吗 长版本 所以我有分支master,Apple和NewApple Apple是建立在非常旧版本的master上的,但只处理了十几个文件,这些文件是在文件夹上实现的,而master的其余部分实际上并没有触及这些文件夹 Apple有提交的ABC、BCD和XYZ。这些是苹果公司独有的提交。请注意,BCD和XYZ之间大约有10次提交。
- 假设我想运行这个命令:
。我希望git cherry pick ABC..XYZ
包含在我对当前分支的提交中。我必须在ABC之前引用提交吗ABC
- 所以我有分支
,master
和Apple
NewApple
是建立在非常旧版本的Apple
上的,但只处理了十几个文件,这些文件是在文件夹上实现的,而master
的其余部分实际上并没有触及这些文件夹master
有提交的Apple
、ABC
和BCD
。这些是苹果公司独有的提交。请注意,XYZ
和BCD
master`XYZ之间大约有10次提交。这些提交从未提交给
- 因此,我创建了一个新分支
,它是从NewApple
的较新版本衍生出来的,这些版本具有较新的提交master
- 然后我从
中选择提交,将其放到Apple
上,就像这样NewApple
git cherry pick ABC..XYZ
- 但是,当完成并提交到我的远程存储库时,我注意到没有包括
。之后的一切,包括ABC
都被放到了XYZ
上NewApple
- 我希望能够提交
,作为我的樱桃选择的一部分,而无需参考ABC
中的提交。我担心如果我这样做,我将无法在Apple
中获得所有提交,或者它将尝试在较新版本的master上随机合并较旧的Apple
提交master
git cherry pick ABC..XYZ
[但是]我希望ABC
包含在我对当前分支的提交中。我必须在ABC之前引用提交吗
简短回答:是的
答案更详细:Git对此有一个语法,因为这是一个非常常见的需求。任何适合于识别一个特定提交的名称,例如主提交
或a123456
,都可以在^
或~
字符后加数字作为后缀。默认数字仅为1,因此:
master^
或
表示“在名称master
选择的提交之前提交”
在这种情况下,您可以这样写:
git cherry-pick ABC^..XYZ
请注意,Windows-y命令行解释器倾向于将^
视为转义字符,需要使用ABC^^..XYZ
或“ABC^..XYZ”
输入命令,因此您可能更喜欢~
。两个都在这里工作
(更具体地说,^number
表示第th个父项的数字,而~number
告诉Git倒数第一个父项的数量。因此master~3
与master^1^1^1
的意思相同。由于1
是默认的数字,您也可以将其写成master^^^
。有更多的方法来识别(请参阅中概述的所有内容。)
…git cherry pick ABC..XYZ
[但是]我希望ABC
包含在我对当前分支的提交中。我必须在ABC
之前引用提交吗
简短回答:是的
答案更详细:Git对此有一个语法,因为这是一个常见的要求。任何适合识别一个特定提交的名称,如master
或a123456
,都可以在^
或~
字符后加数字作为后缀。默认数字仅为1,因此:
master^
或
表示“在名称master
选择的提交之前提交”
在这种情况下,您可以这样写:
git cherry-pick ABC^..XYZ
请注意,Windows-y命令行解释器倾向于将^
视为转义字符,需要使用ABC^^..XYZ
或“ABC^..XYZ”
输入命令,因此您可能更喜欢~
。任何一种方法都适用于此
(更具体地说,
^number
表示第th个父项的数字,而~number
告诉Git倒数第一个父项的数量。因此master~3
与master^1^1^1
的意思相同。由于1
是默认的数字,您也可以将其写成master^^^
。有更多的方法来识别这是我所要找的东西。我学到了很多东西。“安迪:对我来说,这很奇怪,因为我不使用Windows。”——而且,我使用的所有编程语言都使用反斜杠作为转义(C、C++、GO、Python等)。但是我会编辑。这正是我要找的东西。我学到了很多东西。“安迪:对我来说,这很奇怪,因为我不使用Windows。”——而且,我使用的所有编程语言都使用反斜杠作为转义(C、C++、GO、Python等)。但我会编辑。