我不小心将Visual Studio 2017中的一个新分支中的分阶段更改推到了我的本地存储库。它还没有被推送到远程存储库。我想摆脱它,但找不到方法。我从本地主分支转到新分支。然后我删除了新的分支。但是外向提交仍然显示它。如何删除或恢复?
在团队资源管理器的分支tile中打开历史标签(右键单击你的分支)。然后在历史记录中右键单击不想推送的提交之前的提交,选择重置。这将把分支移回该提交,并应该摆脱您所做的额外提交。为了在提交之前重置,你必须选择它的父节点。
根据你想要做的改变选择硬,这将在本地摆脱他们。或者选择soft,它将撤销提交,但将在丢弃的提交中保留您的工作目录中的更改。
我找不到一个好的答案来帮助我摆脱这个问题。
假设分支的名称,你不小心提交了更改,是master。以下四个简单的步骤对我来说是一个世界:
前往分支机构 选择或创建除master之外的任何分支 删除master的本地/工作区版本 从remotes/origin切换到master
你有两种选择,要么放弃所有的提交,要么撤销特定的提交。
1-丢弃你所有的提交
丢弃所有传出的提交 例如,如果你有一个本地分支名为master从远程分支,你可以:
1-重命名你的本地分支从master到任何你可以删除它。 2-移除重命名的分支。 3-创建新的分支从主
所以现在你有一个新的分支没有你的提交..
2-撤销特定的提交: 要撤消特定的提交,您必须恢复不需要的通过:
1-双击不需要的提交。 双击不需要的提交 2-点击恢复 点击恢复
但是供你参考,被还原的提交将会出现在你的提交历史中。
假设您已经将最新的更改推送到服务器:
关闭Visual Studio并删除项目的本地副本 打开Visual Studio,转到团队资源管理器选项卡,单击管理连接。(插头) 单击“管理连接”旁边的下拉箭头,“连接到项目” 选择项目,确认本地路径,然后单击Connect按钮。
一旦重新打开项目,提交和更改都应该为零。
转到团队资源管理器选项卡,然后单击分支。在分支中,从remotes/origin选择您的分支。例如,你想重置你的主分支。右键单击remotes/origin中的主分支,然后选择Reset,然后单击Delete changes。这将重置您的本地分支并删除所有本地提交的更改。
TL; diana:
在cmd .sln文件夹中使用git reset—soft HEAD~
我今天面对它,被VSCode建议这样的东西所震撼,而它的大哥Visual Studio却没有。
大多数答案都没有帮助;如果我有更多的提交,失去他们都将是令人沮丧的。 此外,如果VSCode在半秒内完成,它就不应该很复杂。
只有jessehouwing的答案最接近简单的解决方案。
假设不希望的提交(s)是最后一个发生,这是我如何解决它:
进入团队资源管理器->同步。 你会看到所有的提交。按动作下拉菜单和打开命令提示符
你会有cmd窗口提示,这里写git reset -soft HEAD~。 如果有多个不希望的提交,在~之后添加数量(即git reset -soft HEAD~5)
(如果您不使用git,请检查口语用法)。
我希望它能有所帮助,希望下个版本VS团队能把它内置进去
另一个可能很疯狂的答案,但奏效了。我这么说是因为Git每天都让我感到困惑。
对我来说,外发提交通过PR正确地合并到main,并在远程主分支中正确地显示,但我的本地主分支显示了与需要推送的外发提交相同的提交。
无法推到主界面… Reset(硬的或混合的)什么都不做。
我的解决方案是:删除本地主分支,然后重新签出远程主分支。
推荐文章
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 为什么Visual Studio 2015/2017/2019测试运行器没有发现我的xUnit v2测试
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- 我可以在Visual Studio 2012/2013/2015/2017/2019中录制/播放宏吗?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- Visual Studio复制项目
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- 如何在iis7应用程序池中设置。net Framework 4.5版本
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?