我不小心将 Visual Studio 2017 中新分支中的阶段性更改推送到了我的本地存储库。它尚未被推送到远程存储库。我想摆脱它,但找不到办法做到这一点。我从本地主分支重新定位到新分支。然后我删除了新分支。但是 Outgoing Commits 仍然显示它。如何删除或还原它?
我找不到一个好的答案来帮助我摆脱这个问题。
假设您不小心提交了更改的分支名称是
master
。以下四个简单的步骤对我来说就像一个世界:
master
master
remotes/origin
在.sln文件夹中的cmd中使用
git reset --soft HEAD~
我今天面对它并且不知所措
VSCode
建议这样的事情,而它的老大哥Visual Studio
没有。
大部分答案没有帮助;如果我之前有更多的提交,那么全部丢失会令人沮丧。 而且,如果
VSCode
半秒搞定,应该不复杂
只有jessehouwing的答案最接近简单的解决方案。
转到
Team Explorer
-> Sync
。
在那里你会看到所有的提交。按Actions
下拉菜单和Open Command Prompt
您将看到提示的 cmd 窗口,在那里写
git reset --soft HEAD~
。
如果有多个不需要的提交,请在~
(即git reset --soft HEAD~5
)之后添加金额
(如果您不使用
git
,请检查口语用法)。
我希望它能有所帮助,并希望在下一个版本中 VS 团队将其内置
假设您已将最新更改推送到服务器:
一旦您重新打开项目,提交和更改都应该为零。
另一个可能是疯狂的答案,但有效。我这么说只是因为 Git 每天都让我感到困惑。
对我而言,传出提交已通过 PR 正确合并到主分支,并在远程主分支中正确显示,但我的本地主分支显示与需要推送的传出相同的提交。
我的解决方法: 我删除了本地主分支,然后重新检出远程主分支。
转到团队资源管理器选项卡,然后单击分支。在分支中,从 remotes/origin 选择您的分支。例如,你想重置你的 master 分支。右键单击 remotes/origin 中的 master 分支,然后选择 Reset,然后单击 Delete changes。这将重置您的本地分支并删除所有本地提交的更改。
尝试将本地 master 分支变基到远程/原始 master 分支并解决过程中的任何冲突。
我的解决方案很疯狂,但对我来说最简单的方法是: