我刚刚在VS2019中遇到了一个由樱桃采摘引起的问题,这导致我不得不放弃并重新创建我的本地和github存储库。没什么大不了的,因为代码相当稳定,我不会和任何人一起开发它。
但我想知道我做错了什么,这样我就不会再犯了。
我在存储库中有两个分支,master和dev。我在dev中做了一个特别的更改,我想将其传播回master。因此,按照我在网上找到的一些指示,我将master设置为活动分支,右键单击dev分支并选择Cherry Pick。我想我会看到一个关于dev的提交历史列表,我会从中选择我想要的一个(这是最近的一个(。
只是。。。似乎什么也没发生。"更改"下没有显示任何内容。
所以,我认为我不知怎么搞砸了,于是我遵循了一套不同的方向,提出了dev的历史,同时仍然保留master作为活动分支。在历史记录中,我右键单击了我想要的提交并选择了Cherry Pick。
但似乎什么也没发生。但我注意到代码更改(在一个文件中的一个位置(>>有<lt;出现在master(活动(分支中。
但当我试图将本地存储库同步到github时,我被告知存在一个错误,涉及github和本地存储库之间的一些不一致(很抱歉,我没有想过复制错误消息(。事情从那时起就失控了(我想我试图从github中提取更改来纠正不一致性,然后又出现了另一个错误,即本地存储库头在github存储库头后面或类似的错误(。
如果这个糟糕的描述能提供足够的线索来说明我是怎么搞砸的,以及我应该做什么,我会很感激这些信息。
如果使用git cherry-pick
,在这种情况下使用命令行会更安全。
git reflog
也有助于恢复这种情况,但允许您重置为较旧的提交(在这些操作之前(
如图所示(使用Visual Studio 2019(,在挑选时寻找冲突解决方案,否则它将"陷入"Visual Studio无法很好识别的中间状态。