如何在 Visual Studio 中删除未推送的传出提交?

问题描述 投票:0回答:9

我不小心将 Visual Studio 2017 中新分支中的阶段性更改推送到了我的本地存储库。它尚未被推送到远程存储库。我想摆脱它,但找不到办法做到这一点。我从本地主分支重新定位到新分支。然后我删除了新分支。但是 Outgoing Commits 仍然显示它。如何删除或还原它?

git visual-studio visual-studio-2017
9个回答
370
投票

从分支磁贴打开团队资源管理器中的历史选项卡(右键单击您的分支)。然后在历史记录中右键单击您不想推送的提交before,选择重置。这会将分支移回该提交,并且应该摆脱您所做的额外提交。 为了在给定提交之前重置,您必须选择其父级。

根据您想对更改执行的操作,选择hard,这将在本地删除它们。或者选择 soft 这将撤消提交但将保留您的工作目录以及您丢弃的提交中的更改。


129
投票

我找不到一个好的答案来帮助我摆脱这个问题。

假设您不小心提交了更改的分支名称是

master
。以下四个简单的步骤对我来说就像一个世界:

  1. 前往分行
  2. 选择或创建除
    master
  3. 以外的任何分支
  4. 删除
    master
  5. 的本地/工作区版本
  6. remotes/origin
  7. 切换到master

108
投票

长话短说:

在.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 团队将其内置


3
投票

假设您已将最新更改推送到服务器:

  1. 关闭 Visual Studio 并删除项目的本地副本
  2. 打开 Visual Studio,转到团队资源管理器选项卡,单击管理连接。 (插头)
  3. 单击管理连接旁边的下拉箭头,连接到项目
  4. 选择项目,确认本地路径,点击连接按钮。

一旦您重新打开项目,提交和更改都应该为零。


2
投票

这里有 2 个选项,要么丢弃所有传出的提交,要么撤消特定的提交..

1-丢弃所有即将发出的提交:

丢弃所有传出的提交 例如,如果您在远程分支中有一个名为 master 的本地分支,您可以:

1- 将您的本地分支从 master 重命名为任何名称,以便您可以将其删除。 2-删除重命名的分支。 3- 从 master

创建新分支

所以现在你有了一个没有提交的新分支..

2-撤消特定提交: 要撤消特定的提交,您必须通过以下方式还原不需要的内容:

1- 双击不需要的提交。 Double click on the unneeded commit 2-点击还原 Click on revert

但是仅供参考,还原的提交将与还原提交一起出现在您的提交历史中..


2
投票

另一个可能是疯狂的答案,但有效。我这么说只是因为 Git 每天都让我感到困惑。

对我而言,传出提交已通过 PR 正确合并到主分支,并在远程主分支中正确显示,但我的本地主分支显示与需要推送的传出相同的提交。

  • 无法推送到主...
  • 重置(硬重置或混合重置)什么也没做。

我的解决方法: 我删除了本地主分支,然后重新检出远程主分支。


1
投票

转到团队资源管理器选项卡,然后单击分支。在分支中,从 remotes/origin 选择您的分支。例如,你想重置你的 master 分支。右键单击 remotes/origin 中的 master 分支,然后选择 Reset,然后单击 Delete changes。这将重置您的本地分支并删除所有本地提交的更改。


0
投票

尝试将本地 master 分支变基到远程/原始 master 分支并解决过程中的任何冲突。


0
投票

我的解决方案很疯狂,但对我来说最简单的方法是:

  1. 关闭视觉工作室
  2. 在可视代码中打开
  3. 在提交上单击撤消提交
  4. 关闭视觉代码
  5. 在Visual Studio中再次打开
© www.soinside.com 2019 - 2024. All rights reserved.