重置后恢复阶段状态

问题描述 投票:1回答:2

git reset --mixed之后,我之前上演的新文件变得无法使用。 是否有可能恢复在git reset执行之前的阶段状态?

git reset stage
2个回答
1
投票

不幸的是,git不会自动存储暂存历史记录,没有直接的方法将索引恢复到其先前的状态之一。


将来,您可以采取以下措施:

  • 经常提交
  • 变种:提交然后回滚: # add stuff : git add ... / git add -p ... git commit -m "work in progress" git reset --soft HEAD^ 这将在当前分支的reflog中添加创建的提交, 使用git reset --soft将保留临时区域
  • 使用git stash && git stash apply git stash创建了两个提交: 一个用于集结区的内容, 一个用于所有已修改文件的内容

这是命令的输出:

$ git stash && git stash apply
Saved working directory and index state WIP on master: 7475d1d {message}
On branch master
Your branch is up to date with 'origin/master'.

Changes to be committed:
[...]

这是stash提交的样子:

    $ git log --oneline --graph stash@{0}
    *   79d9cd7 (refs/stash) WIP on master: 7475d1d {message} # <- full stash
    |\  
    | * 43f3da0 index on master: 7475d1d {message}            # <- staging area's content
    |/  
    *   7475d1d (HEAD -> master, origin/master) {message}     # <- current active commit
    |\
    ...

1
投票

您可以重新添加文件:

git add path/to/the/file

如果只有部分文件被暂存,您可以修补添加:

git add --patch path/to/the/file
© www.soinside.com 2019 - 2024. All rights reserved.