Eclipse git checkout(又名,还原)


139

是否可以git checkout使用EGit插件在Eclipse中进行等效操作?

我有一个已修改的文件。我想放弃所做的更改,并将文件还原回源存储库中的内容。在Subversion中,这称为还原。在git中,等效为结帐。

我在“团队”下找不到类似于结帐或还原的菜单项。我正在使用EGit 0.6.0。


6
git很烂!在还原之前,它不会显示您将要还原的内容。Subversion将为您提供一个不错的确认窗口,其中包含您要还原的文件的列表。因此,您可以选择当场要还原或取消的内容。超级强大的git感到羞耻。
JohnPristine

5
@JohnPristine Eclipse git插件(egit)是显示确认窗口的插件,而不是git本身。
布拉德·库比

右键单击要还原的文件,然后选择“覆盖”。我同意,Git很烂。
DhafirNz 2014年

在2016年的eGit版本4.5.0中,我看不到“覆盖”。现在似乎是“替换为...”“ HEAD修订版”
Ed Randall

Answers:


274

这可以通过包视图中文件上的上下文菜单“替换为/ Git索引中的文件”来完成。


5
如果该文件在工作空间中不存在(还应该),该怎么办?
zedoo 2014年

@zedoo如果文件不存在,请打开“ Git Staging”视图,在“ Unstaged Changes”列表中右键单击已删除的文件,然后选择“用HEAD Revision替换”
Vlasta Dolejs

42

您可以通过(硬)重置来实现。在项目的上下文菜单上,选择“团队”>“重置为...”,然后选择“ HEAD”和“ Hard”作为重置类型。

请注意,这样做将丢失所有文件的更改。要仅还原单个文件,请参见此答案


我刚刚发现,提交也可以做同样的事情的困难方法-提交所有文件,而不仅仅是提交选定的文件。
郭富城2009年

是的,但是至少您可以在提交对话框中取消选择文件...顺便说一句:我为重置bug提交了一个 bugs.eclipse.org/bugs/show_bug.cgi?id=295423
simon

5
因此,Eclipse对Git的支持确实不如CVS和SVN!CVS的“用HEAD中的最新功能替换”功能对我来说真的很重要。
kosoant 2010年

@kosoant Eclipse也可以使用Git做到这一点。看到这个答案
Brad Cupit 2014年

3
他明确要求还原一个文件,而不是全部文件。
Zofren 2014年

18

在Eclipse版本中:3.7.0

在“团队同步透视图”中->在同步视图中右键单击文件/文件夹->覆盖


这是最容易执行的操作之一。它会弹出一个窗口,以确认您要覆盖本地更改。
Karidrgn '17

这删除了新文件,未进行暂存的更改,这正是我所需要的。
卡图

12

另一种可能性是使用Git Staging视图

  • 通过按Ctrl + 3或Command + 3并键入以下内容来打开Git Staging视图
    staging
  • 如果该视图尚未显示您的存储库,请单击项目或文件
  • 现在,您应该在“未分级更改”部分中看到您修改的文件
  • 双击未暂存的文件
  • 现在,您将看到一个比较视图,左侧为您的版本,右侧为更改前的版本

现在,仅撤消文件中的某些更改,请执行以下操作:

  • 在比较视图中,选择更改的行之一
  • 选择“ 从右向左复制当前更改”工具栏项

这将使左侧对应于此更改的右侧。保存文件以完成撤消。

撤消所有更改:

  • 在暂存视图中,右键单击未暂存的文件
  • 在Git索引中选择“ 替换为文件”

您还可以选择多个未暂存的文件,然后单击鼠标右键。


我不知道为什么这个答案得那么少的选票。我更愿意将此标记为最佳;永远不会想通自己。感谢@robinst
HarsH '16

11

通过转到窗口>显示视图>其他> Git分段>未分段的更改来还原单个文件

选择您想要还原的文件。右键单击并选择“ 替换为HEAD版本”

请注意,此步骤无法撤消。

(我正在使用Eclipse版本:3.7.2 Egit版本2.3.1.201302201838-r)


7

要还原,可以右键单击所需的文件/目录,然后选择“ 替换为” ->“ HEAD版本”


适用于Eclipse中的任何Git插件吗?与Egit配合良好。
johnnieb

更新:在Eclipse Mars和Luna SR2(内置Git)中,它的工作方式是这样的。
Mag

4

开放团队同步。找到文件,然后右键单击->覆盖。

更新

在Eclipse Luna(4.4.2)中,打开团队同步。找到文件,然后右键单击->“还原...”


3

该功能实际上在其中,但可能并不明显:

  • 确保已使用git版本启用quickdiff,并且quickdiff基线为HEAD(这是默认设置)。
  • 打开要还原的文件。
  • 全选(Ctrl-A)
  • 在quickdiff栏中右键单击
  • 选择“还原选择”
  • 保存

顺便说一句,在git lingo中还原意味着创建一个新的提交以还原先前的提交。


要与quickdiff合作,这里是一个快速的介绍:wiki.eclipse.org/EGit/User_Guide/State#Quickdiff
Valentin

1

要将整个文件还原为存储库的数据,请执行以下操作:

单击您要进行修订的文件夹,然后转到GitStaging 在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.