【问题标题】:How to undo git rm . -r --cached command without losing any uncommitted changes?如何撤消 git rm 。 -r --cached 命令不会丢失任何未提交的更改?
【发布时间】:2016-11-27 02:32:40
【问题描述】:

我不小心执行了一个git rm . -r --cached 命令,它使所有文件都处于删除状态。我有一些我不想丢失的未提交更改。如何撤消git rm . -r --cached 命令的效果并返回之前的状态而不丢失任何未提交的更改?

【问题讨论】:

    标签: git rm


    【解决方案1】:

    由于您使用了--cached 选项,因此仅修改了您的索引。您的工作目录保持原样。您可以简单地git add 标记为已删除的文件。

    【讨论】:

    • 我需要在 git add 之后提交吗?命令?如果是这种情况,它会增加一个对历史日志没有意义的提交,因为它是意外完成的。
    • @akash88 nop。没有提交。
    • 用 git add 完成。除了那些不在 gitignore 文件列表中的文件之外,现在状态对所有人都很好?混帐添加。命令不会取消删除 gitignore 文件中的文件吗?
    • @akash88 如果我记得,.gitignored 中的文件不能用简单的git add . 添加。您需要单独添加它们或强制添加它们。
    【解决方案2】:

    只需再次添加它们:git add .

    您运行的命令不会从磁盘中删除文件,只是从索引中删除。所以,把它们加回来。

    【讨论】:

    • 不确定,在这种情况下 stash 会做什么?我需要在 git add 之后提交吗?命令?如果是这种情况,它将增加一个对历史日志没有意义的提交,因为它是意外完成的。
    • 第一个添加操作将安全地撤消您调用的“rm”。现在我明白了,这是偶然的。刚刚编辑了我的答案,以为您想执行“rm”命令然后恢复更改。
    • 谢谢!!!我已经完成了 git add。除了那些不在 gitignore 文件列表中的文件之外,现在状态对所有人都很好?混帐添加。命令不取消删除放在 gitignore 文件中的文件?
    • Git add 仅在索引中起作用,因此它永远不会取消删除某些内容,而是在提交之前将更改添加到索引中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2011-11-29
    • 2021-09-30
    • 2016-08-02
    • 1970-01-01
    • 2022-01-17
    相关资源
    最近更新 更多