我对一个文件做了一些更改,这个文件已经作为一组文件的一部分提交了几次,但现在想要将对它的更改重置/恢复到以前的版本。
我已经做了一个git log和一个git diff来找到我需要的修订版,但就是不知道如何将文件恢复到它过去的状态。
发布于 2008-10-18 23:39:35
假设您想要的提交的散列是c5f567
git checkout c5f567 -- file1/to/restore file2/to/restoregit checkout手册页提供了更多信息。
如果您希望恢复到c5f567之前的提交,请追加~1 (其中1是您想要返回的提交数,它可以是任何值):
git checkout c5f567~1 -- file1/to/restore file2/to/restore顺便说一下,我一直对这个命令感到不舒服,因为它既用于普通的事情(在分支之间切换),也用于不寻常的、破坏性的事情(丢弃工作目录中的更改)。
还有一个新的git restore命令,专门用于恢复已修改的工作副本文件。如果您的git足够新,您可以使用此命令,但文档附带一个警告:
此命令是实验性的。行为可能会发生变化。
发布于 2008-12-17 06:59:34
您可以使用diff命令快速查看对文件所做的更改:
git diff <commit hash> <filename>然后,要使用重置命令将特定文件恢复为该提交:
git reset <commit hash> <filename>如果进行了本地修改,则可能需要使用--hard选项。
管理路点的一个很好的工作流程是使用标签在时间线中清晰地标记路点。我不太理解你的最后一句话,但你可能想要的是将一个分支与上一个时间点分开。要执行此操作,请使用方便的checkout命令:
git checkout <commit hash>
git checkout -b <new branch name>然后,当您准备好合并这些更改时,您可以根据您的主线重新设置基础:
git checkout <my branch>
git rebase master
git checkout master
git merge <my branch>发布于 2009-04-07 21:48:35
您可以使用任何对git提交的引用,如果最方便的话,包括SHA-1。关键是命令看起来像这样:
git checkout [commit-ref] -- [filename]
https://stackoverflow.com/questions/215718
复制相似问题