【问题标题】:Undoing a single-file Git Checkout撤消单个文件 Git Checkout
【发布时间】:2012-05-11 12:43:50
【问题描述】:

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

git checkout aux.c

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

【问题讨论】:

    标签: xcode git commit rollback git-checkout


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,我确实试了一下...... git status 显示文件已修改,XCode 立即重新加载文件......好吧,再次从头开始处理这个文件......跨度>
    • 好吧,我确实不走运。从 Xcode 不会自动提交任何东西的最困难的方式中学到。至少我只是设法从头开始重建几乎所有东西。感谢您的帮助,顺便说一句。 P.S.:刚刚提交。可以肯定的是,你知道...
    【解决方案2】:

    如果该文件从未提交到存储库,那么不幸的是,你运气不好。

    听起来,你只是有一个空的 git 存储库,这意味着你的文件已经丢失,而 Versions(Lion 附带)或 Time Machine 可能是你从错误中恢复的最佳选择。

    要确认是否有任何内容已提交到存储库,请使用git log。如果你得到一个空响应,那么你在 git 前端就不走运了。

    很遗憾,这可能不是您要寻找的答案。

    【讨论】:

    • 是的,我只得到了 Xcode 的初始提交。好吧,我对 Xcode 太信任了。从头开始。
    【解决方案3】:

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

    但是,还有另一种方法。

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

    【讨论】:

      【解决方案4】:

      如果您未提交的更改是恢复的最佳方法是转到(左窗格)源代码管理导航器 -> 隐藏的更改 -> 查找日期/时间早于您想要撤销的提交的文件,然后单击对文件应用存储更改。这将带回所有未保存的文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-08-05
        • 2014-06-13
        • 2013-08-27
        • 2019-03-18
        • 2017-03-02
        • 2013-06-16
        • 1970-01-01
        相关资源
        最近更新 更多