撤消 git 重置文件命令
Undo a git reset file command
我只是 运行 这个命令:
git reset origin/dev -- package-lock.json
但我想撤消它,我想返回:
git reset HEAD -- package-lock.json
但我认为返回 HEAD 可能为时已晚...如何撤消原始命令?
也许:
git reset HEAD^ -- package-lock.json
?
更新:我想我是想做 git checkout origin/dev -- package-lock.json
,而不是 git 重置。
git reset <em>commit</em> -- <em>path</em>
表示:将文件 path
从 commit
复制到索引中。
您无法撤消此操作,因为它会覆盖该路径索引中的任何文件。
幸运的是,您很少需要撤消此操作,因为索引中的副本可能也在其他地方。如果是这样,只需将 that 复制到索引中即可。通常,索引中任何文件的副本本身就是其他文件的副本:通过 git checkout
提取的已提交文件的副本,或通过 [ 添加的工作树文件的副本=13=].
如果索引中的副本在其他任何地方都不存在,那你就不走运了。但这通常只发生在 git add --patch
或 git reset --patch
.
时
Update: I think I meant to do git checkout origin/dev -- package-lock.json
这意味着:将文件package-lock.json
从origin/dev
标识的提交复制到索引中,然后将索引版本复制到工作树中。 与 git reset
一样,这会覆盖之前索引中的任何内容,并且该部分无法撤消。成功覆盖索引版本后,它还会将文件提取到工作树中,覆盖工作树中的任何内容。这也无法撤消 - 而且您拥有先前在工作树中拥有的内容的副本的可能性 较少。因此,使用这种 git checkout
比使用上述 git reset
.
要更加小心
无论如何,如果 是 您的意思,您现在就可以这样做,覆盖之前卡在索引中的任何内容,并覆盖工作树副本。
我只是 运行 这个命令:
git reset origin/dev -- package-lock.json
但我想撤消它,我想返回:
git reset HEAD -- package-lock.json
但我认为返回 HEAD 可能为时已晚...如何撤消原始命令?
也许:
git reset HEAD^ -- package-lock.json
?
更新:我想我是想做 git checkout origin/dev -- package-lock.json
,而不是 git 重置。
git reset <em>commit</em> -- <em>path</em>
表示:将文件 path
从 commit
复制到索引中。
您无法撤消此操作,因为它会覆盖该路径索引中的任何文件。
幸运的是,您很少需要撤消此操作,因为索引中的副本可能也在其他地方。如果是这样,只需将 that 复制到索引中即可。通常,索引中任何文件的副本本身就是其他文件的副本:通过 git checkout
提取的已提交文件的副本,或通过 [ 添加的工作树文件的副本=13=].
如果索引中的副本在其他任何地方都不存在,那你就不走运了。但这通常只发生在 git add --patch
或 git reset --patch
.
Update: I think I meant to do
git checkout origin/dev -- package-lock.json
这意味着:将文件package-lock.json
从origin/dev
标识的提交复制到索引中,然后将索引版本复制到工作树中。 与 git reset
一样,这会覆盖之前索引中的任何内容,并且该部分无法撤消。成功覆盖索引版本后,它还会将文件提取到工作树中,覆盖工作树中的任何内容。这也无法撤消 - 而且您拥有先前在工作树中拥有的内容的副本的可能性 较少。因此,使用这种 git checkout
比使用上述 git reset
.
无论如何,如果 是 您的意思,您现在就可以这样做,覆盖之前卡在索引中的任何内容,并覆盖工作树副本。