Visual Studio 2019 年的樱桃采摘问题

Cherry Pick Problem in Visual Studio 2019

我刚刚 运行 遇到了一个由 VS2019 中的 cherry picking 引起的问题,这导致我不得不放弃并重新创建我的本地和 github 存储库。没什么大不了的,因为代码相当稳定,我不会与任何人共同开发它。

但我想知道我做错了什么,所以我不会再犯了。

我在存储库中有两个 b运行ches,master 和 dev。我在 dev 中做了一个特别的更改,我想将其传播回 master。因此,按照我在网上找到的一些说明,我将 master 设置为活动 b运行ch,右键单击 dev b运行ch 并选择 Cherry Pick。以为我会看到一份关于 dev 的提交历史列表,我会从中选择我想要的(最近的)。

只是……似乎什么都没发生。 Changes 下没有显示任何内容。

所以,我以为我搞砸了,我遵循了一组不同的方向并提出了 dev 的历史,同时仍然将 master 作为活动 b运行ch。在历史记录中,我右键单击了我想要的提交并选择了 Cherry Pick。

似乎仍然没有发生任何事情。但我注意到代码更改(它在一个文件中的一个地方)>>已经<<出现在主(活动)b运行ch.

但是当我尝试将本地存储库同步到 github 时,我被告知 github 和本地存储库之间存在一些不一致的错误(抱歉,我没想到要复制错误消息)。事情从那里开始失控(我想我尝试从 github 中拉取更改来解决不一致,然后以另一个错误结束,关于本地存储库头在 github 存储库头后面或类似的东西).

如果这个糟糕的描述提供了足够的线索,说明我是如何搞砸的,以及我应该做什么,我将不胜感激。

在这种情况下使用命令行会更安全,git cherry-pick

A git reflog 也可以帮助恢复这种情况,但允许您重置为较旧的提交(在这些操作之前)

(与Visual Studio 2019)一样,在挑选时寻找冲突解决方案,否则"stuck"处于Visual Studio所做的中间状态不太好识别。