通常情况下,如果我在一个分支上进行更改,然后意识到我应该在另一个分支上进行更改,那么我可以简单地存储更改,然后检出我想要的分支。
如果我已经在本地提交了更改(但尚未推送到远程),如何有效地完成相同的操作?
我希望我的本地分支就像我从未进行过任何更改一样……特别是我不想推送两个提交(一个包含更改,另一个撤消更改)。我只想让提交消失,就好像它从未发生过一样。当我检出我想要的分支时,我希望我的更改在那里……或者我希望能够恢复它们(作为更改,但显然不是提交)。
我已经搜索了一些答案,但找到的答案主要集中在我提到的第一种情况,即未提交更改。很可能我已经找到了我需要的确切答案,但没有意识到,因为我不能百分之百确定场景是否与我的相同。所以显然我对git还有点陌生,我相信这肯定是一个重复的问题,但也许我只是难以确定哪些现有问题是重复的。
我同时标记了VS 2017和2019,因为我两个都使用,并且欢迎任何解释如何通过IDE在这两个版本中完成以及如何在shell中实现此操作的答案。
这个特定的提交是唯一的。虽然我有兴趣听取两种情况的解决方案(这一个和其他有效提交的情况)。