在GitHub桌面(或Github for Windows)中回滚未经修改的更改

Mar*_*mer 13 git github github-for-windows github-desktop

我阅读了Stack Overflow上的几十篇帖子以及网页上的很多页面(包括GitHub的帮助页面),花了我几个小时才弄清楚如何做这个超级简单的事情,坦率地说根本不是很明显,所以我是我会在这里回答我自己的问题.

我正在使用GitHub for Windows(更新:它现在称为Github Desktop),我对我的本地文件进行了一系列更改.它变得如此混乱,我决定我只想将我的本地文件回滚到他们最后一次提交时的位置.我没有做出新的改变 - 我只是想摆脱它们.我怎样才能做到这一点?

Mar*_*mer 13

当您打开GitHub for Windows v2.0并在最左侧的列中选择您的存储库时,您将在左侧的第二列中看到所有先前的提交.如果您选择其中一个提交,则在顶部的右侧列中您将看到"Revert",当您将鼠标悬停时,"创建一个新的提交以恢复此提交中的更改".我不认为这是你想要做的,因为你不想恢复该提交中的更改,而是还原尚未提交的更改.所以不要这样做.(当您在第二列中选择"未提交的更改"时,"还原"链接不存在.

GUI中的

有两个选项 - 第一个很容易,第二个很容易:

轻松 - 在最左侧列中选择您的存储库,然后单击右上角的齿轮图标并选择"在Git Shell中打开".shell应该打开并位于存储库的目录中.从那里,您可以键入git reset --hard以还原自上次提交后修改的文件,然后git clean -fd删除自上次提交后添加的所有文件.显然,你也可以在这里输入其他git命令.

用于进入CLI的Git Shell

超级简单 - 在最左侧的列中选择您的存储库,然后单击第二列中的"未提交的更改"以在右侧显示已更改的文件.如果右键单击任何文件,您将可以选择"放弃更改".(人们如何知道右键单击是超出我的.)如果右键单击"要提交的文件"旁边的空格,您将可以选择"放弃所有更改".单击该文件并将其删除,所有更改都将被删除,并且您的本地文件将返回到您上次提交时的位置.

在此输入图像描述

  • @techkilljoy 事实上,他的答案是完美的。超级简单的答案在我的机器上失败了,所以需要简单的答案。由于它就在这里,我能够执行它,而无需尝试找到您链接的其他位置。 (2认同)

Mar*_*mer 10

用于Windows v3的GitHub使得"超级简单"的答案已经过时了,再一次,弄清楚要做什么并不明显.这一次,在最左边的列中选择您的存储库,然后单击"历史记录"左侧顶部的"{#}未提交的更改"链接.这应该给你一个像下面这样的中间列.要放弃未提交的更改,您需要右键单击修改文件列表上方的"{#}更改"文本.(单击该文本周围的空白区域不会执行任何操作.)单击"放弃所有更改",然后再次,presto,所有更改都将被删除,并且您的本地文件将返回到您上次提交时的位置.(顺便说说,

用于Windows v3的GitHub的屏幕截图


Mar*_*mer 3

为了与时俱进,Windows 版的 Github 进行了巨大的改造,所以这里有一个新的答案。它现在称为Github Desktop版本号从 v1.0.0 开始。因此,如果您运行的是Github Desktop v1,那么您的 UI 看起来会有点不同。

然而,这个超级方便、总是隐藏的小功能仍然存在。

首先,在黑色区域最左侧的下拉列表中选择您的存储库。确保您选择了“更改”选项卡。现在,您可以右键单击包含“{#} 已更改文件”的矩形中的任意位置,您将看到一个弹出窗口,显示“放弃所有更改...”,单击该窗口,然后您就回到了原来的位置这是你最后一次做出承诺。

奖励:您还可以右键单击任何已更改的文件以获得一个弹出窗口,使您能够仅对该文件“放弃更改...”。单击该按钮,只有该文件会恢复到上次提交时的位置。

在此输入图像描述

Github Desktop文档现在包含有关如何放弃更改的信息。然而,这是不正确的!当您右键单击单个文件时,弹出窗口不会提供“放弃所有更改...”的选项,如屏幕截图所示。要放弃所有更改,您需要按照我上面的描述进行操作。