我通过git checkout意外放弃了对本地工作树中文件的更改。这些文件目前没有上演。是否可以“撤销”此结账?git可以撤消未挂起文件的签出
回答
我相信如果一个文件被修改,但尚未添加(分阶段),它是纯粹的“私人”。
这意味着它无法通过GIT恢复如果与索引或HEAD版本覆盖(除非你有你当前的工作副本的地方)。”
‘私人’的内容是一个仅在当前目录可见,但在Git的任何方式注册
很遗憾,您的更改将丢失您的私人修改只是覆盖 除非你做了git stash
事先制定结账......
从光明的一面把它:。你可以现在把事情做得更好;)
我只是'checkout - .' OMG,我希望新的工具更好..不要在家编码.. – coanor 2013-01-14 02:11:29
如果您使用的是“专业”IDE,那么您可以从本地历史记录中恢复文件。 例如,您可以右键单击文件并查看独立于git更改的更改历史记录,现在为我节省了几次^^
仅供参考此功能适用于整个JetBrains系列“专业”IDE:Pycharm,IDEA,PHPStorm,Webstorm。今天保存了我的bakken。谢谢,克里斯托弗! – 2012-12-03 22:08:47
我得感谢你。我使用WebStorm,并且完全忘记了这个功能,尽管我经常使用它。我只是陷入了代码的丢失,我没有想到它! – 2013-04-05 03:16:52
在eclipse中,您可以右键点击文件 - >与 - >本地历史进行比较 – Maragues 2013-05-31 15:05:06
检查IDE中的本地历史记录。
只是做了一个错误,没有分期我的变化,并强制结帐。我在Android Studio中查看了本地历史记录(查看 - >最近的更改)并恢复了我所做的最后更改。更多信息在这里https://www.jetbrains.com/help/idea/2016.3/restoring-a-file-from-local-history.html – AimanB 2016-12-21 02:26:21
这对RubyMine非常有效,消除你的更改的操作将被引用作为“外部变化”。非常感谢这个Marcin,它为我节省了一小时的工作时间! – AndrewSouthpaw 2017-01-18 19:17:16
也许你的改变不会丢失。检查“混帐引用日志”
我引用下面的文章:
“基本上每次你的Git存储数据的内部执行的动作,你可以找到它的引用日志里面的Git试图真的很难不丢失。您的资料,因此,如果由于某种原因,你觉得它有,那么你可以使用Git引用日志挖掘出来”
查看详情:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
不要让你的希望得到提升 - 得到reflog只有在你以有意义的方式与git进行交互时才会有帮助。只需编辑一个文件,然后通过git结账把它吹走? git从来没有机会。 – 2013-09-20 16:09:13
+1我认为值得一提的是'git reflog'在这里,当我寻找撤销一个'git checkout HEAD'的时候,我发现了这个答案 - 我打算输入'git reset HEAD。' - 我刚才做了'git reset --soft HEAD〜1'并且不知道'git reflog',所以能够找回我已经完成的工作:) – 2016-03-28 12:10:54
通常,我的所有工作都在Dropbox文件夹中。这可以确保我可以在当地机器和Github之外使用当前文件夹。我认为这是我保证git以外的“版本控制”的另一个步骤。 You can follow this in order to revert your file to previous versions of your dropbox files
希望这会有所帮助。
技术上是的。但只限于某些情况。例如,如果您有代码页,并且您打了git checkout,并且您意识到您意外检出了错误的页面或其他内容。转到该页面并单击撤消。 (对于我来说,命令+ z),并且它会返回到您打开良好的旧git结帐之前的确切位置。
如果您的页面已关闭,那么这将不起作用,然后您打git结帐。它只适用于实际代码页打开的情况
这种情况的有效救星是Time Machine(OS X)或类似的基于时间的备份系统。它救了我几次,因为我可以返回并恢复那一个文件。
亲爱的downvoter - 请你解释一下我可以如何改进这个答案? – sscirrus 2016-12-13 05:59:32
在上开发OS X?使用Xcode?你很可能会很幸运!
如comment by qungu中所述,即使您未使用时间机器,OS X也会保留文件的自动保存版本历史记录,。
所以,如果你吹走满不在乎git checkout .
你不分阶段的局部变化,这里是你如何能可能恢复所有的工作。
如果有人发现这个线程已经破坏了XCode中的一些工作,有一种方法来获取自动保存历史记录。 XCode本身没有菜单条目来查看自动保存历史记录,但它确实存储它。如果在TextEdit中打开有问题的文件,则可以在File> Revert下恢复并查看AutoSave历史记录。
这是真棒,昨天恢复了约一天的工作。
也许你会问,“为什么不git的命令行界面,只是吹他们离开之前,在2016年用于软件工程,至少备份文件最大的VCS?就像,你知道的,大约过去三十年写得很好的软件工具。“
或者你也许会问,“为什么在TextEdit中可以访问这个非常棒的文件历史记录功能,但是实际上我不需要Xcode吗?
......我认为这两者都会告诉你很多关于我们这个行业的信息。或者,也许你会去修复这些工具。这将是真棒。
非常感谢 – chbdetta 2017-02-21 04:24:55
如果与终端工作/ CMD提示开放,并用于将已经显示出不分阶段改变(diff
,add -p
,checkout -p
等)任何GIT中的命令,并且没有关闭终端/自CMD提示,你会发现如果你滚动到你运行上述git命令的地方,那么未分离的更改仍然可用。
- 1. 如何撤消未更改文件的挂起更改?
- 2. Git:撤消未提交的更改以重置特定文件
- 3. 如何使用git撤消挂起的更改?
- 4. TFS日志撤消签出?
- 5. Git编辑撤消。如何使用git编辑撤消多个文件?
- 6. 撤消Git提交由于大文件
- 7. Git文件推送到远程撤消
- 8. 撤消Git拉没有丢失以前未发现的本地文件
- 9. 如何在git中“撤消撤消”?
- 10. 撤消git存储,git pull
- 11. Git - 撤消更改
- 12. 撤消git合并
- 13. git撤消更改
- 14. 撤消git commit --amend
- 15. 撤消签入?
- 16. 插件未出现在挂起插件
- 17. 在visual studio 2015中“撤消挂起的更改”后恢复文件(更改)
- 18. 撤消的Git track命令
- 19. 撤消'git push'的问题
- 20. 撤消git am的--abort
- 21. 撤消推git的合并
- 22. 撤消git的承诺
- 23. 撤消github上的git push
- 24. 我可以撤消最后的git push吗?
- 25. git push origin在总消息后挂起
- 26. Git-Annex挂起
- 27. 撤消git add和git commit以及一种git push原点
- 28. TFS保存更改私人和撤消挂起的更改
- 29. 搁架然后撤消挂起的更改
- 30. 如何执行TFS等效的'撤消挂起更改'
我明白,'私人'文件的更改不能由git撤消。但是,如果文件被git修改了(例如通过'git checkout --'),我希望它能够撤销该操作,也许可以通过'reflog'。那是错误的期望? – 2016-11-27 22:30:34
@CiprianTomoiaga reflog用于过去*未提交*提交。如果你想恢复的内容没有被提交(或分段),reflog不会帮助你。 – VonC 2016-11-27 22:32:18
@CiprianTomoiaga对于任何类型的私人内容(尚未添加),您将完全依赖于您的编辑器或IDE功能。 eclipse示例:http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.platform.doc.user%2Ftasks%2Ftasks-87b.htm – VonC 2016-11-27 22:33:22