撤消单个文件Git Checkout

时间:2012-05-02 02:42:12

标签: xcode git commit rollback git-checkout

所以,我正在使用XCode开发一个项目。令人高兴的是,我发现它在每个项目中都有一个Git存储库。因此,在代码出错后,我只使用了

git checkout aux.c

从这些错误中退出。不幸的是,正如我刚刚发现的那样,Xcode不会自动提交,因此,我最终得到了一个空白文件。 在此之后我没有提交任何内容,但仍然无法弄清楚如何撤消此结帐。

4 个答案:

答案 0 :(得分:2)

对不起,你不能。 :-(你将不得不以其他方式替换文件。

git跟踪文件有两个地方 - 提交和索引/暂存区域。由于没有提交,并且您从暂存区域检查了文件的版本,因此没有其他地方。

为了以防万一,请运行git status,以确保它仍然不会显示对该文件的分阶段更改。

您是否有机会在编辑器中打开它并可以撤消对git checkout所做文件的更改?像Textmate和SublimeText这样的编辑会允许这样做;其他人没有。

答案 1 :(得分:1)

如果文件从未被提交到存储库,那么很遗憾你不幸。

从它的声音来看,你只需要一个空的git存储库,这意味着你的文件已经丢失,并且版本(Lion附带)或Time Machine可能是你从错误中恢复的最佳选择。

要确认是否已将任何内容提交到存储库,请使用git log。如果你得到一个空的回答,那么你在git前面运气不好。

不幸的是,这可能不是你想要的答案。

答案 2 :(得分:0)

事实上,撤消对git的第一次提交是不可能的。因此,如果您正在运行Xcode,请经常手动提交。

但是,还有另一种方式。

如果您运行的是OS X 10.7 Lion或后者(不确定Snow Leopard),您可以尝试使用OS X中的版本功能来恢复任何文件。对我来说太迟了,但它应该工作

答案 3 :(得分:0)

如果要进行未提交的更改,最好的恢复方法是转到(左窗格)Source Control Navigator-> Stashed Changes->查找一个日期/时间早于您想提交的提交的文件,然后单击以单击。将隐藏更改应用到文件。这样会将所有未保存的文件重新带回。