我已经对一个文件做了一些修改,该文件已经作为文件组的一部分提交了几次,但是现在希望将对它的更改重置/还原回以前的版本。
我做了一个git log
连同一个git diff
要找到我需要的修订,但不知道如何将文件恢复到以前的状态。
发布于 2018-03-28 08:46:54
假设想要的提交的哈希是c5f567
:
git checkout c5f567 -- file1/to/restore file2/to/restore
GIT结帐主页提供更多信息。
如果想恢复到所做的更改1
前犯c5f567
,将提交哈希作为c5f567~1
:
git checkout c5f567~1 -- file1/to/restore file2/to/restore
顺便提一句,我一直对这个命令感到不舒服,因为它既用于普通的事情(在分支之间进行更改),也用于异常的破坏性事情(丢弃工作目录中的更改)。
发布于 2018-03-28 10:25:08
可以使用diff命令快速查看对文件所做的更改:
git diff <commit hash> <filename>
然后,若要将特定文件还原为提交,请使用Reset命令:
git reset <commit hash> <filename>
可能需要使用--hard
选项,如果有本地修改。
管理路标点的一个很好的工作流程是使用标记来干净地标记时间线中的点。我不太明白你的最后一句话,但你可能想要的是从以前的时间点分开一个分支。为此,请使用方便的签出命令:
git checkout <commit hash>
git checkout -b <new branch name>
然后,当准备合并这些更改时,可以根据主线重新设置这些更改:
git checkout <my branch>
git rebase master
git checkout master
git merge <my branch>
https://stackoverflow.com/questions/-100003228
复制相似问题