可以用git来取消未分离的文件的签出
我偶然地放弃了我的本地工作树中的文件通过git结帐的变化。 这些文件目前没有上演。 可以“撤销”这个结帐吗?
我相信,如果一个文件被修改,但还没有添加(阶段),它是纯粹的“私人”。
这意味着如果用索引或HEAD版本覆盖,GIT就不能恢复它(除非你有一份当前工作的副本)。
“私人”内容只能在当前目录中看到,但在Git中没有以任何方式注册。
如果您使用的是“专业”IDE,则可以从本地历史logging恢复文件。 例如在Rubymine中,您可以右键单击文件并从独立于git的变化中查看更改的历史,现在保存了几次^^
不幸的是你的改变丢失了。 您的私人修改只是被覆盖。 除非你在做结帐之前把git stash
好
从更明亮的一面来看:现在可以把事情做得更好;)
如果你在一个像Sublime Text这样的编辑器中工作,并且有问题的文件仍然打开,你可以按ctrl + z,它将返回到git checkout之前的状态。
检查您的IDE中的本地历史logging。
在OS X上开发? 使用Xcode? 你可能很幸运!
正如qungu的评论中所描述的那样, 即使您没有使用时间机器 ,OS X 也会保留文件的自动保存版本历史logging。
所以,如果你用一个不小心的git checkout .
吹走了未分配的本地变更git checkout .
,这里是如何可能恢复所有的工作。
如果有人发现这个线程已经破坏了XCode的一些工作,有一种方法来获取自动保存历史logging。 XCode本身没有菜单条目来查看自动保存历史logging,但它确实存储它。 如果在TextEdit中打开有问题的文件,则可以在File> Revert下恢复并查看AutoSave历史logging。
这真是太棒了,昨天为我恢复了一天的工作。
您可能会问: “为什么2016年用于软件工程的首要VCS没有git命令行界面,至less在把它们扔掉之前备份文件呢?就像你知道的那样,三十年“。
或者你也许会问: “为什么在TextEdit中可以访问这个非常棒的文件历史loggingfunction,但是实际上我不需要Xcode吗?
我想这两个都会告诉你很多关于我们这个行业的信息。 或者,也许你会去修复这些工具。 这将是真棒。
如果您之前曾经隐瞒过更改(例如重新绑定之前),这可能会有所帮助
如何在Git中恢复被丢弃的存储?
即使你已经“藏起来”了。
我通常把所有的工作放在一个保pipe箱文件夹中。 这确保了我可以在当地的机器和Github之外使用当前的文件夹。 我认为这是我保证git以外的“版本控制”的另一个步骤。 您可以按照此步骤将文件恢复到Dropbox文件的先前版本
希望这可以帮助。
这种情况的有效救星是Time Machine(OS X)或类似的基于时间的备份系统。 它救了我几次,因为我可以回去只恢复一个文件。
也许你的改变不会丢失。 检查“git reflog”
我引用下面的文章:
“基本上你在Git里面执行的每一个数据存储的行为,你都可以在reflog中find它, Git很难不丢失你的数据,所以如果出于某种原因,你认为它有可能挖出来使用git reflog“
查看具体信息:
http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html
技术上是的。 但只在某些情况下。 例如,如果你有代码页,你打git结帐,你意识到你不小心签出了错误的页面或东西。 转到页面并点击撤消。 (对我来说,命令+ z),它会返回到你打到好的旧的git结帐之前。
如果你的页面已经closures,这将不起作用,然后你打git结帐。 它只有在实际的代码页打开时才有效