代码之家  ›  专栏  ›  技术社区  ›  Predrag Davidovic

将提交的文件还原到工作内存中

  •  0
  • Predrag Davidovic  · 技术社区  · 4 年前

    我提交了多个文件,现在当我键入: git status :我收到消息:(使用“git push”发布您的本地提交)。

    我如何将这些文件返回到工作内存中?

    我的目标是将所有文件返回到工作内存中,并且不会丢失我提交的任何更改?

    2 回复  |  直到 4 年前
        1
  •  1
  •   Predrag Davidovic    4 年前

    我通过以下方式解决了这个问题: git重置--混合HEAD~1

        2
  •  1
  •   Mohsen Sabbaghi    4 年前

    很高兴知道,当你在本地机器上初始化一个git存储库时,它有三个不同的区域,如下所示:
    1-工作区
    2-暂存区(索引)
    3-存储库(本地)
    当你使用 git add {file name(s) or patterns or .} 将文件从工作区发送到暂存区,并在创建 git commit 事实上,您将文件从暂存区发送到存储库中。
    以下是一些有用的命令:

    -删除文件:
    git rm {file name} #从工作目录和暂存区中删除
    git rm --cached {file name} #仅从暂存区移除

    -重命名或移动文件:
    git mv {source file name} {destination file name}

    -查看阶段性/非阶段性更改:
    git diff #显示未分期的更改
    git diff --staged #显示阶段性更改
    git diff --cached #与上述相同

    -查看历史记录:
    git log #完整历史
    git log --oneline #摘要
    git log --reverse #列出从最早到最新的提交

    -查看提交:
    git show {commit id} #显示给定的提交
    git show HEAD #显示最后一次提交
    git show HEAD~2 #最后一次提交前的两步
    git show HEAD:{file name} #显示上次提交时存储的file.js版本

    -取消文件归档(撤消git add)
    git restore --staged {file name} #将file.js的最新版本从repo复制到index

    -放弃本地更改:
    git restore {file name} #将file.js从索引复制到工作目录
    git restore {file name(s)} #恢复工作目录中的多个文件
    git restore . #放弃所有本地更改(未跟踪的文件除外)
    git clean -fd #删除所有未跟踪的文件

    你的答案:
    还原文件的早期版本
    git restore --source=HEAD~1 {file name}

        3
  •  0
  •   Sparkofska    4 年前

    git reset 这可能就是你要找的。

    重置命令有几个选项:

    • --hard 放弃任何更改
    • --soft 在暂存区保留更改
    • --mixed 在暂存区和工作目录中保留一些更改

    还有更多的参数。请参阅 documentation 了解详情。