问题:您想测试某人开发的功能,但它只存在于一个已经过时的远程分支中。
- 樱桃采摘如何解决问题?
- 为什么我不使用 git am 或 git apply?
问题:您想测试某人开发的功能,但它只存在于一个已经过时的远程分支中。
如果您合并或重新定位,您会得到一堆旧的更改,可能是冲突的。
通过挑选樱桃,您可以获取一个更改集,并将其作为新提交重播到另一个分支。
如果您只想将一个提交到另一个分支而不需要其历史记录,这将很有用。
使用该-x
选项很有用,因此提交消息包含一个注释,它是从中挑选出来的。
为什么我不使用 git am 或 git apply?
因为 git apply 用于应用补丁(文件),而 git am 用于应用一系列补丁。git cherry-pick 应用提交 - 即,来自您自己的存储库的提交,与您从其他存储库导入的提交。
git-cherry-pick - 应用一些现有提交引入的更改
[...]
给定一个或多个现有提交,应用每个引入的更改,并为每个提交记录一个新的提交。这要求您的工作树是干净的(不修改 HEAD 提交)。
因此,当您cherry-pick
提交时,git
接受该提交的更改(它的diff
)并尝试将其应用于您当前的工作目录,创建一个与您正在执行的提交等效的新提交cherry-pick
。
这是一种在不同的历史行上重新进行另一个提交更改的方法。
除了进行更改之外,cherry-pick
还保留原始提交的信息,如作者等。
最后,cherry-pick
可以接收一组要应用的提交,在这种情况下,它会按照cherry-pick
时间顺序(较旧的在前)一个接一个地处理它们。