我不小心将Visual Studio 2017中新分支的分阶段更改推送到本地存储库。它尚未被推送到远程存储库。我想摆脱它,但无法找到办法做到这一点。我从当地的主分支机构改为新的分支机构。然后我删除了新分支。但外出的提交人仍然表明了这一点。如何删除或还原它?
答案 0 :(得分:85)
从“分支”磁贴中打开“团队资源管理器”中的“历史记录”选项卡(右键单击您的分支)。然后在历史记录中右键单击您不想推送的提交之前的提交,选择重置。这会将分支移回到该提交,并且应该摆脱你所做的额外提交。 为了在给定提交之前重置,您必须选择其父级。
根据您要对更改执行的操作,请选择 hard ,这将在本地删除它们。或者选择 soft ,这将取消提交,但会使您的工作目录中包含您丢弃的提交中的更改。
答案 1 :(得分:16)
在.sln文件夹的cmd中使用git reset --soft HEAD~
我今天面对这个问题,不知VSCode
提出了这样的建议,而哥哥Visual Studio
却没有。
大多数答案都很有帮助;如果我之前有更多提交,那么全部丢失都会令人沮丧。
而且,如果VSCode
在半秒内完成操作,那么它应该不会很复杂。
只有jessehouwing's的答案是最接近简单解决方案的。
转到Team Explorer
-> Sync
。
在那里,您将看到所有提交。按Actions
下拉菜单,然后按Open Command Prompt
系统将提示您cmd窗口,在其中输入git reset --soft HEAD~
。
如果有多个不希望的提交,请在~
(即git reset --soft HEAD~5
)之后添加金额
(如果您不使用git
,请检查口语用法)。
我希望它会有所帮助,并希望在下一版本中VS团队将其内置。
答案 2 :(得分:14)
我找不到一个好的答案可以帮助我摆脱这个问题。
比方说,您无意间对更改进行了更改的分支名称为master
。四个简单的步骤对我来说就像是一个世界:
master
以外的任何分支master
的本地/工作区版本remotes/origin
切换为母版答案 3 :(得分:3)
假设您已将最新更改推送到服务器:
重新打开项目后,提交和更改都应为零。
答案 4 :(得分:0)
您有2种选择,要么放弃所有外发提交,要么撤消特定的提交..
1-丢弃所有外发提交:
丢弃所有外发的提交 例如,如果您有来自远程分支的名为master的本地分支,则可以:
1-将本地分支从master重命名为任何名称,以便将其删除。 2-删除重命名的分支。 3-从母版创建新分支
所以现在您有了一个没有提交的新分支..
2-撤消特定的提交: 要撤消特定的提交,您必须将不需要的内容还原为:
1-双击不需要的提交。 Double click on the unneeded commit 2-单击还原 Click on revert
但是仅供参考,还原后的提交将与还原后的提交一起显示在您的提交历史中。
答案 5 :(得分:0)
转到“团队资源管理器”选项卡,然后单击“分支”。在分支中,从远程/原点中选择您的分支。例如,您想重置您的master分支。右键单击远程/源中的主分支,然后选择“重置”,然后单击“删除更改”。这将重置您的本地分支,并删除所有本地提交的更改。
答案 6 :(得分:0)
尝试将本地master分支重新建立到远程/原始master分支上,并解决此过程中的所有冲突。
答案 7 :(得分:0)
我通过推送我的更改在 Github 桌面应用程序中修复了它。